Java Swing:在对话框内格式化内容

时间:2018-10-10 01:05:01

标签: java swing jpanel jdialog

在格式化对话框中的JComponent位置时遇到一些问题。我觉得这是一个已经有答案的问题,但是我在查找信息时遇到了一些问题。

我尝试使用自定义的JOptionPane / JDialog在元素上使用setLocation(虽然不确定我是否正确执行了这些操作),但是它们始终忽略位置的格式。并且所有元素都以一条水平线出现

enter image description here

理想情况下,我希望类名称在顶部,三个成员在中间,而按钮在底部。 我正在这样创建对话框:

front = front->next;

和NewClass()(扩展了JPanel)看起来像这样:

JPanel createClass = new NewClass();
int result = JOptionPane.showConfirmDialog(GUI.this, 
        createClass, "Create a class",JOptionPane.OK_CANCEL_OPTION);

因此,如果有人可以将我指向正确的方向或指向另一个类似的帖子,将不胜感激。

1 个答案:

答案 0 :(得分:1)

“理想情况下,我想将类名放在顶部,将3个成员列表放在中间,将按钮放在底部”
您可以使用BorderLayout来实现。以下代码段可能会帮助您入门:

    setLayout(new BorderLayout());

    //now add 3 panel as containers for top, center and bottom content
    JPanel top = new JPanel();
    add(top, BorderLayout.NORTH);
    JPanel center = new JPanel();
    add(center, BorderLayout.CENTER);
    JPanel bottom = new JPanel();
    add(bottom, BorderLayout.SOUTH);

    //manage layout and add content to top container
    top.setLayout(new FlowLayout());//actually it the default
    top.add(new JLabel("Class Name:"));
    JTextField className = new JTextField(10);
    top.add(className);
    top.add(new JLabel("Super Class Name:"));
    JTextField superName = new JTextField(10);
    top.add(superName);

    //todo manage layout and add content to center container
    //todo manage layout and add content to bottom container