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)可见。