如何在Java中堆叠/叠加jPanel?

我真的是Java Java编程的新手,我做了很多研究,但找不到这个问题的答案。

我有一个简单的JFrame用一个菜单,这里面JFrame我有JPanel一个日志的形式(分别为用户输入自己的用户名和密码),然后我想改变这种状况JPanel到另一JPanel这取决于用户想做的事情。

最好的方法是什么?我认为堆叠JPanels是可以的。但是JLayeredPanels在Netbeans中添加新内容后,它们不会堆叠。我读过某个地方应该使用Z排序或类似的命令,但在设计器视图中找不到它。

好吧,非常感谢您的耐心配合!

回答:

CardLayout类具有可以满足您的要求的有用的API。使用类似的方法next(), first(),

last()可能会有所帮助。我准备了一个简单的演示,该演示在父面板和/或框架中更改面板。看一看:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class PanelChanger implements ActionListener

{

JPanel panels;

public void init(Container pane)

{

JButton switcher = new JButton("Switch Active Panel!");

switcher.addActionListener(this);

JPanel login = new JPanel();

login.setBackground(Color.CYAN);

login.add(new JLabel("Welcome to login panel."));

JPanel another = new JPanel();

another.setBackground(Color.GREEN);

another.add(new JLabel("Yeah, this is another panel."));

panels = new JPanel(new CardLayout());

panels.add(login);

panels.add(another);

pane.add(switcher, BorderLayout.PAGE_START);

pane.add(panels, BorderLayout.CENTER);

}

public void actionPerformed(ActionEvent evt)

{

CardLayout layout = (CardLayout)(panels.getLayout());

layout.next(panels);

}

public static void main(String[] args)

{

JFrame frame = new JFrame("CardLayoutDemo");

PanelChanger changer = new PanelChanger();

changer.init(frame.getContentPane());

frame.pack();

frame.setVisible(true);

}

}

以上是 如何在Java中堆叠/叠加jPanel? 的全部内容, 来源链接: utcz.com/qa/423887.html

回到顶部