Swing中JFrame的刷新问题?

qqlwq123 2011-10-24 07:17:22
看API介绍的时候JFrame好像已经实现了双缓冲,但我调用repaint()的时候,原来存在的填充不会刷新掉,还保留在原来的位置上,一般的Frame我重写一个update()方法实现双缓冲就能把旧的填充刷掉。JFrame怎样才能刷掉整个框架?
...全文
4928 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
diandimei 2011-10-26
  • 打赏
  • 举报
回复
关键点在于,首先remove(以前的组件) 自然可以修改多个
然后来个invalidate()
继而调用repaint()
然后必须有的哦setVisible(true)
呵呵,被自己感动地说
diandimei 2011-10-26
  • 打赏
  • 举报
回复
终于搞定了,这回可是货真价实的,呵呵
package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class FrameUpdate implements ActionListener{

JFrame frame;
JButton one;
JButton two;

public FrameUpdate(){
frame = new JFrame();
one = new JButton("下一个");
one.addActionListener(this);
two = new JButton("上一个");
two.addActionListener(this);
frame.add(one);
frame.pack();
frame.setVisible(true);
}

public void actionPerformed(ActionEvent actionEvent){
String actionName = actionEvent.getActionCommand();
if(actionName.equals("下一个")){
frame.remove(one);
frame.add(two);
frame.invalidate();
frame.repaint();
frame.setVisible(true);
}
else if(actionName.equals("上一个")){
frame.remove(two);
frame.add(one);
frame.invalidate();
frame.repaint();
frame.setVisible(true);
}
}
public static void main(String[] args) {
new FrameUpdate();
}

}
huntor 2011-10-26
  • 打赏
  • 举报
回复
JComponent的子类支持双缓冲
  void paintForceDoubleBuffered(java.awt.Graphics);
void setCreatedDoubleBuffer(boolean);
boolean getCreatedDoubleBuffer();
public void setDoubleBuffered(boolean);
public boolean isDoubleBuffered();


JFrame 是 Frame的子类。

swing和awt的绘制过程不同,看书去吧。
  • 打赏
  • 举报
回复
我也遇到了这个问题
查查网上资料说
Frame中可以,在JFrame中则不能直接重画
要用一个panel 来帮助实现
sd4324530 2011-10-25
  • 打赏
  • 举报
回复
调用updateUI();这个方法是刷新该组件上所有的内容
nizhicheng 2011-10-25
  • 打赏
  • 举报
回复
学习~
风尘中国 2011-10-25
  • 打赏
  • 举报
回复
如果你想要整个JFrame全部重新刷新调用 JFrame.validate();这个方法
这个方法会验证JFrame容器下面的所有组件,然后重绘和重排布各个组件
diandimei 2011-10-25
  • 打赏
  • 举报
回复
看看frame.revoilate(),看看行不?

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧