您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

再次更新JFrame

再次更新JFrame

例如,

import java.awt.cardlayout;
import java.awt.Dimension;
import java.awt.event.*;

import javax.swing.*;

public class RepaintTest extends JPanel {
   private static final int PREF_W = 400;
   private static final int PREF_H = PREF_W;
   private static final int LABEL_COUNT = 3;
   private static final String LABEL_PANEL = "label panel";
   private static final Object BLANK_COMPONENT = "blank component";
   private static final int TIMER_DELAY = 2000;
   private cardlayout cardlayout = new cardlayout();

   public Repainttest() {
      JPanel labelPanel = new JPanel();
      for (int i = 0; i < LABEL_COUNT; i++) {
         labelPanel.add(new JLabel("Label " + (i + 1)));
      }

      setLayout(cardlayout);
      add(labelPanel, LABEL_PANEL);
      add(new JLabel(), BLANK_COMPONENT);

      new Timer(TIMER_DELAY, new TimerListener()).start();

   }

   @Override
   public Dimension getPreferredSize() {
      return new Dimension(PREF_W, PREF_H);
   }

   private class TimerListener implements ActionListener {
      @Override
      public void actionPerformed(ActionEvent e) {
         cardlayout.next(RepaintTest.this);
      }
   }

   private static void createAndShowGui() {
      RepaintTest mainPanel = new Repainttest();

      JFrame frame = new JFrame("RepaintTest");
      frame.setDefaultCloSEOperation(JFrame.DISPOSE_ON_CLOSE);
      frame.getContentPane().add(mainPanel);
      frame.pack();
      frame.setLocationByPlatform(true);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokelater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}
其他 2022/1/1 18:32:12 有457人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶