9 个解决方案
#1
看看frame.revoilate(),看看行不?
#2
如果你想要整个JFrame全部重新刷新调用
JFrame.validate();这个方法
这个方法会验证JFrame容器下面的所有组件,然后重绘和重排布各个组件
这个方法会验证JFrame容器下面的所有组件,然后重绘和重排布各个组件
#3
学习~
#4
调用updateUI();这个方法是刷新该组件上所有的内容
#5
我也遇到了这个问题
查查网上资料说
Frame中可以,在JFrame中则不能直接重画
要用一个panel 来帮助实现
查查网上资料说
Frame中可以,在JFrame中则不能直接重画
要用一个panel 来帮助实现
#6
#7
JComponent的子类支持双缓冲
JFrame 是 Frame的子类。
swing和awt的绘制过程不同,看书去吧。
void paintForceDoubleBuffered(java.awt.Graphics);
void setCreatedDoubleBuffer(boolean);
boolean getCreatedDoubleBuffer();
public void setDoubleBuffered(boolean);
public boolean isDoubleBuffered();
JFrame 是 Frame的子类。
swing和awt的绘制过程不同,看书去吧。
#8
终于搞定了,这回可是货真价实的,呵呵
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();
}
}
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();
}
}
#9
关键点在于,首先remove(以前的组件) 自然可以修改多个
然后来个invalidate()
继而调用repaint()
然后必须有的哦setVisible(true)
呵呵,被自己感动地说
然后来个invalidate()
继而调用repaint()
然后必须有的哦setVisible(true)
呵呵,被自己感动地说
#1
看看frame.revoilate(),看看行不?
#2
如果你想要整个JFrame全部重新刷新调用
JFrame.validate();这个方法
这个方法会验证JFrame容器下面的所有组件,然后重绘和重排布各个组件
这个方法会验证JFrame容器下面的所有组件,然后重绘和重排布各个组件
#3
学习~
#4
调用updateUI();这个方法是刷新该组件上所有的内容
#5
我也遇到了这个问题
查查网上资料说
Frame中可以,在JFrame中则不能直接重画
要用一个panel 来帮助实现
查查网上资料说
Frame中可以,在JFrame中则不能直接重画
要用一个panel 来帮助实现
#6
#7
JComponent的子类支持双缓冲
JFrame 是 Frame的子类。
swing和awt的绘制过程不同,看书去吧。
void paintForceDoubleBuffered(java.awt.Graphics);
void setCreatedDoubleBuffer(boolean);
boolean getCreatedDoubleBuffer();
public void setDoubleBuffered(boolean);
public boolean isDoubleBuffered();
JFrame 是 Frame的子类。
swing和awt的绘制过程不同,看书去吧。
#8
终于搞定了,这回可是货真价实的,呵呵
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();
}
}
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();
}
}
#9
关键点在于,首先remove(以前的组件) 自然可以修改多个
然后来个invalidate()
继而调用repaint()
然后必须有的哦setVisible(true)
呵呵,被自己感动地说
然后来个invalidate()
继而调用repaint()
然后必须有的哦setVisible(true)
呵呵,被自己感动地说