gpt4 book ai didi

java - 如何向 JFrame 添加多个不同大小的 JPanel

转载 作者:行者123 更新时间:2023-12-02 05:45:01 26 4
gpt4 key购买 nike

我尝试从 stackoverflow 执行此操作:

adding multiple jPanels to jFrame

但这似乎并不像示例中那样有效,有人能告诉我我做错了什么吗?我试图将多个具有各自大小的 JPanel 添加到 JFrame 中。我还希望能够为每个 JPanel 提供特定的尺寸并能够将它们放置在我想要的确切位置。

我尝试制作的图片: Mockup

这是我到目前为止的代码: 公共(public) ReserveringenGUI(ReserveringController Controller ) { this.controller = new ReserveringController(); makeFrame(); }

public void makeFrame() {
JFrame frame1 = new JFrame();
frame1.setTitle("Reserveringen");
frame1.setSize(800, 500);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel container = new JPanel();
container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS));

JPanel willekeurigPanel = new JPanel();
willekeurigPanel.setSize(400, 500);
willekeurigPanel.setBackground(Color.YELLOW);
willekeurigPanel.setVisible(true);

JPanel overzichtPanel = new JPanel();
overzichtPanel.setSize(400, 500);
overzichtPanel.setBackground(Color.red);
overzichtPanel.setVisible(true);

DateFormat format = new SimpleDateFormat("dd-MM-yyyy");
DateFormatter df = new DateFormatter(format);
JFormattedTextField dateBeginField = new JFormattedTextField(df);
dateBeginField.setPreferredSize(new Dimension(250, 20));
dateBeginField.setValue(new Date());

JFormattedTextField dateEndField = new JFormattedTextField(df);
dateEndField.setPreferredSize(new Dimension(250, 20));
dateEndField.setValue(new Date());

JTextField klantnummer = new JTextField();
klantnummer.setPreferredSize(new Dimension(250, 20));
JTextField artikelnummer = new JTextField();
artikelnummer.setPreferredSize(new Dimension(250, 20));

JLabel dateBeginLabel = new JLabel("Begin Datum ");
JLabel dateEndLabel = new JLabel("Eind datum: ");
JLabel klantID = new JLabel("Klant nummer: ");
JLabel artikelID = new JLabel("Artikel nummer: ");

JButton voegReserveringToe = new JButton("Voeg toe");

voegReserveringToe.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
voegReserveringToeActionPerformed(evt);
}
});

willekeurigPanel.add(dateBeginLabel);
willekeurigPanel.add(dateBeginField);

willekeurigPanel.add(dateEndLabel);
willekeurigPanel.add(dateEndField);

willekeurigPanel.add(klantID);
willekeurigPanel.add(klantnummer);

willekeurigPanel.add(artikelID);
willekeurigPanel.add(artikelnummer);

willekeurigPanel.add(voegReserveringToe);



container.add(willekeurigPanel);
container.add(overzichtPanel);

frame1.add(container);
frame1.setVisible(true);
}

最佳答案

正如所讨论的here 、不要随意设定元件的大小和位置。相反,让布局来完成工作,nesting按要求。使用显示的 GroupLayout here对于带标签的输入字段。将每个添加到具有 BorderLayout 的面板的 CENTER,并在左侧的 SOUTH 中添加一个按钮。最后,将两个面板添加到具有 GridLayout(1, 0) 的封闭面板中。

关于java - 如何向 JFrame 添加多个不同大小的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158642/

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