javaswing中repaint()刷新面板的问题 求指教。。。代码如下:运行后点击按钮1,面板没刷新,需要缩放面板才能看到新的面板。我用计时器或则线程来调用repaint(),好像都没...
java swing 中 repaint()刷新面板的问题 求指教。。。代码如下:运行后点击按钮1,面板没刷新,需要缩放面板才能看到新的面板。 我用计时器或则线程来调用repaint(),好像都没用,到底是怎么回事啊。。。import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class Test extends JFrame implements ActionListener { MyThread thread = new MyThread(); JFrame frame; JPanel panel; Container containe; JPanel panel2; javax.swing.Timer time = new Timer(80,this); Test() { time.start(); frame = new JFrame(); containe = frame.getContentPane(); panel = new JPanel(); panel2 = new JPanel(); JButton button1 = new JButton("按钮1"); JButton button2 = new JButton("按钮2"); panel.setBackground(Color.BLACK); panel2.setBackground(Color.RED); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { containe.removeAll(); containe.add(panel2); } }); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { containe.removeAll(); containe.add(panel); } }); panel.add(button1); panel2.add(button2); containe.add(panel); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thread.start(); frame.setVisible(true); } public static void main(String[] args) { new Test(); } class MyThread extends Thread { public void run() { containe.repaint(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub repaint(); }}
展开