gpt4 book ai didi

java - 在 JDialog 中创建 JTabbedPane 并使框架可用

转载 作者:行者123 更新时间:2023-11-30 04:24:41 32 4
gpt4 key购买 nike

我正在使用 Java 中的 GUI 进行工作,并且我已经制作了几个 JDialogs,一个在另一个之上打开。我尝试创建一个 JTabbedPane 并且成功了。但是,我必须在 JFrame 中制作 JTabbedPane。我已经尝试过,但 JPanel 打开时全是空白。

其次,当我使用 JFrame 时(因此新的 JTabbedPane 开始运行),相同的框架出现在前一个框架的后面。

所以我的问题是:

  • 如何在 JDialog 中创建选项卡式 Pane ?
  • 如果使用 JFrame,如何使 JTabbedPane 出现在所有其他框架的前面?

这是我的代码,当我单击之前的 JDialog 中的 JButton 时,此 JFrame 打开

public class AddComponents extends JDialog {    

private String[] arr = {"House", "Microgrid", "CSP", "VPP"};

public AddComponents(JDialog pai, String titulo)
{
super(pai, titulo);
frame = new JFrame(titulo);

// Display the window.

frame.setSize(500, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// set grid layout for the frame

frame.getContentPane().setLayout(new GridLayout(1, 1));


tabbedPane = new JTabbedPane(JTabbedPane.TOP);
pack();

for (int i = 0; i < arr.length; i++) {
String tmp = arr[i];
tabbedPane.addTab(tmp, makePanel(tmp));


}

frame.getContentPane().add(tabbedPane);
frame.setMinimumSize(new Dimension(getWidth(), getHeight()));
frame.setLocation(pai.getX() + 85, pai.getY() + 25);
frame.setEnabled(true);


}

private JPanel makePanel(String text) {
JPanel p = new JPanel();
//p.setLayout(new GridLayout(0,1));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();


if(text.equals("House"))
{ //CADA UM DOS ifs chama a class correspondente para criar o interface
p1.setLayout(new GridLayout(4, 2));

idLabel = new JLabel("Component ID:");
idText = new JTextField("");
p1.add(idLabel);
p1.add(idText);



maxUsageLabel = new JLabel("Max usage per hour:");
maxUsageText = new JTextField("");
p1.add(maxUsageLabel);
p1.add(maxUsageText);

minUsageLabel = new JLabel("Min usage per hour:");
minUsageText = new JTextField("");
p1.add(minUsageLabel);
p1.add(minUsageText);

averageUsageLabel = new JLabel("Average usage per hour:");
averageUsageText = new JTextField("");
p1.add(averageUsageLabel);
p1.add(averageUsageText);

// emptyLabel = new JLabel("");
saveButton = new JButton("Save");
// p.add(emptyLabel);
p2.add(saveButton);

p.add(p1);
p.add(p2);

}
if(text.equals("Microgrid"))
{
p.setLayout(new GridLayout(5, 2));
outroLabel = new JLabel(" Microgrid");
p.add(outroLabel);


}
if(text.equals("VPP"))
{
p.setLayout(new GridLayout(5, 2));
outroLabel = new JLabel(" VPP");
p.add(outroLabel);
}
if(text.equals("CSP"))
{
p.setLayout(new GridLayout(5, 2));
outroLabel = new JLabel(" CSP");
p.add(outroLabel);
}

return p;

}


}

最佳答案

“如何在 JDialog 中创建选项卡式 Pane ?”

  • 与将其添加到 JFrame 中的情况相同。这里本质上没有任何区别。

“如果我使用 JFrame,如何使 JTabbedPane 出现在所有其他框架的前面?”

  • 你不知道。如果您想在其他窗口上方显示一个窗口,则可以使用 JDialog。

关于java - 在 JDialog 中创建 JTabbedPane 并使框架可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16242526/

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