gpt4 book ai didi

java - 将 myJTextField 置于 JComboBox 旁边

转载 作者:行者123 更新时间:2023-12-01 18:12:15 27 4
gpt4 key购买 nike

我想创建一个包含许多 JComboBox 的调色板。像这样:

for(int x=0; x<MAX; x++){
box[x] = new JComboBox(new String[]{"op1", "op2", "op3");
}

在每个 JComboBox 的右侧,我想创建许多 JTextField。所以,在我的调色板中,我会有一些这样的想法:

myJComboBox1          myJTextField
anotherJTextField
anotherJTextField



myJComboBox2 myJTextField
anotherJTextField
anotherJTextField
...

请问我该怎么做?我尝试了 setBounds 和其他布局,如 FlowLayoutGridLayout 但没有成功。

最佳答案

GridBagLayout 是最好的解决方案。然而,如果您是 Swing 新手,它可能有点过于复杂。在这种情况下:

  1. 使用 GridLayout(0, 2) 作为主面板。
  2. 将组合框包装在具有边框布局的面板中,并将其添加到北边。将其添加到主面板。
  3. 使用另一个带有 GridLayout(0,1) 的面板,向其中添加文本字段并将其添加到主面板。

然后循环...

添加示例代码:

package snippet;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.GridLayout;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class BorderLayoutTest extends JFrame {

static private int MAX = 10 ;

public BorderLayoutTest() {
super(BorderLayoutTest.class.getName());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initComponents();
}

private void initComponents() {
setLayout(new GridLayout(0, 2));
for(int i = 0; i < MAX; i++) {
add(createComboPanel());
add(createPanelWithTextFields());
}
pack();
}

public Component createComboPanel() {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JComboBox<>(new String[] { "First Option", "Second Option", "Third Option" }), BorderLayout.NORTH);
return panel;
}

private Component createPanelWithTextFields() {
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(new JTextField(30));
panel.add(new JTextField(30));
panel.add(new JTextField(30));
return panel;
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
new BorderLayoutTest().setVisible(true);
}
});
}

}

关于java - 将 myJTextField 置于 JComboBox 旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114326/

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