gpt4 book ai didi

java - 广告选择面板抛出 JCombobox

转载 作者:行者123 更新时间:2023-12-01 13:03:07 25 4
gpt4 key购买 nike

当我使用组合框时,我在向框架中添加另一个 JPanel 时遇到问题。我想根据组合框中的选择更改中心面板。我为所有选择创建了不同的面板,但它没有添加到我的主面板中。我添加了代码。

谢谢:)

import AllClasses.FlightCompany;
{
public class WorkerDialog extends JFrame {
private JPanel Worker;
private String[] LabelNames = { "Worker Type:", " Worker Name:" };
String [] str = { "Office", "Host",
"Pilot" };
JComboBox<String> ChooseBox = new JComboBox<>(str);
public JPanel MainPanel;
private JPanel [] p= new JPanel[3];

public WorkerDialog(FlightCompany f) {
super("Worker Dialog");

p[0] = new Office_Gui();
p[1] = new Host_Gui();
p[2] = new Pilot_Gui();
Worker = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5));
JLabel LabelName = new JLabel(LabelNames[0]);
JLabel LabelName2 = new JLabel(LabelNames[1]);
JTextField fieldBox = new JTextField();
LabelName.setSize(40, 25);
ChooseBox.setPreferredSize(new Dimension(180, 22));
Worker.add(LabelName);
Worker.add(ChooseBox);
Worker.add(LabelName2);
fieldBox.setPreferredSize(new Dimension(180, 22));
Worker.add(fieldBox);
JPanel AddPanel = new JPanel(new GridLayout(2, 1, 1, 1));
AddPanel.add(new JButton("Add"));
AddPanel.add(new JButton("TakeOff"));
MainPanel = new JPanel(new BorderLayout(3, 3));
AddPanel.setPreferredSize(new Dimension(0, 110));
ChooseBox.addItemListener(new ItemListener() {



@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
//String str = e.getActionCommand();
String jb = (String) ChooseBox.getSelectedItem();
if (jb.equals("Office")){

MainPanel.add(p[0],BorderLayout.CENTER);
System.out.println("Office");}
}
});








MainPanel.add(Worker, BorderLayout.NORTH);
MainPanel.add(AddPanel, BorderLayout.SOUTH);
add(MainPanel);
//pack();
setSize(560, 300);
setAlwaysOnTop(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);

最佳答案

您想要做的是为您的 mainPanel 使用 CardLayout,这将允许您轻松地在面板之间切换。然后将所有面板添加到 mainPanel 中,并指定面板的名称。该名称将出现在组合框中。当你想显示某个面板时,只需调用cardLayout.show(mainPanel, "nameOfPanel")

要了解有关卡片布局的更多信息,请参阅 How to Use CardLayout 。您还可以看一个简单的例子here

旁白:使用 Java 命名约定。变量以小写字母开头,使用驼峰式大小写。即:

  • 选择框选择框
  • 主面板主面板
  • 等等

关于java - 广告选择面板抛出 JCombobox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23403555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com