Java 中的 CardLayout 类的重要性是什么?

awtjavaobject oriented programmingprogrammingswing

CardLayout 的功能是按顺序排列组件,并且一次只能看到一个组件,并且每个组件将被视为一张卡片。

CardLayout

  • CardLayout  与其他布局不同,其他布局管理器会尝试一次显示容器内的所有组件,而 CardLayout  一次只显示一个组件。
  • CardLayout 中,卡片通常放置在 JPanel 等容器中。组件按照添加的顺序放入卡片队列中。
  • CardLayout 的重要方法是 first()、last()、next()、previous() 和 show()

示例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutTest extends JFrame implements ActionListener {
   CardLayout card;
   JButton b1,b2,b3;
   Container con;
   CardLayoutTest() {
      con = this.getContentPane();
      card = new CardLayout(40,30);
      con.setLayout(card);
      b1 = new JButton("Java");
      b2 = new JButton("Python");
      b3 = new JButton("Scala");
      b1.addActionListener(this);
      b2.addActionListener(this);
      b3.addActionListener(this);
      con.add("a", b1);
      con.add("b", b2);
      con.add("c", b3);
   }
   public void actionPerformed(ActionEvent e) {
      card.next(con);
   }
   public static void main(String[] args) {
      CardLayoutTest clt = new CardLayoutTest();
      clt.setTitle("CardLayout Test");
      clt.setSize(350, 275);
      clt.setLocationRelativeTo(null);
      clt.setDefaultCloseOperation(EXIT_ON_CLOSE);
      clt.setVisible(true);
   }
}

在上面的例子中,我们可以使用 CardLayout 管理器,其中只有一个组件 (Java) 在窗口上可见。当我们点击窗口时,剩余的组件(Python 和 Scala)可见。

输出


相关文章