0
我目前正在編寫一個接口,其中有一個JFrame
類和兩個JPanel
類。當腳本第一次執行時,會顯示面板A.我在面板A中有一個JButton
,我希望在單擊時顯示面板B而不是面板A.擺動卡布局更改面板顯示在用戶的行動
有沒有什麼辦法可以做到這一點?
我目前正在編寫一個接口,其中有一個JFrame
類和兩個JPanel
類。當腳本第一次執行時,會顯示面板A.我在面板A中有一個JButton
,我希望在單擊時顯示面板B而不是面板A.擺動卡布局更改面板顯示在用戶的行動
有沒有什麼辦法可以做到這一點?
閱讀tutorial。
您可以使用CardLayout
next()
方法用於顯示忘詞,
,或者您可以使用show(...);
用於顯示特定的卡。
簡單的例子:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Example {
public static void main(String[] args){
JFrame frame = new JFrame();
final JPanel panel = new JPanel(new CardLayout());
JLabel l1 = new JLabel("1");
JLabel l2 = new JLabel("2");
JLabel l3 = new JLabel("3");
panel.add(l1,"l1");
panel.add(l2,"l2");
panel.add(l3,"l3");
JButton btn = new JButton("next");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
CardLayout layout = (CardLayout) panel.getLayout();
layout.next(panel);
}
});
JButton btnSpec = new JButton("l3");
btnSpec.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
CardLayout layout = (CardLayout) panel.getLayout();
layout.show(panel, "l3");
}
});
frame.add(panel);
frame.add(btn,BorderLayout.SOUTH);
frame.add(btnSpec,BorderLayout.NORTH);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
看看[這個問題和答案】(http://stackoverflow.com/a/20483818/2587435)。應該給你一些想法。 –
*「謝謝 達里奧」*噪音,離開它。 –