这是我的 JFrame
的截图.这将是我的应用程序的主窗口。
所以问题是所有的按钮都是内联的,而我希望它们一个在另一个下面,即 Add Contact
在 Show Contacts
下.
那我该怎么做呢?
这是我的 JFrame
代码.
public class CRUDFrame extends JFrame {
public CRUDFrame(){
super("AppCRUD");
setLayout(new FlowLayout());
JButton button1, button2, button3, button4;
button1 = new JButton(" Show Contacts ");
button2 = new JButton(" Add Contact ");
button3 = new JButton(" Update Number in a Contact ");
button4 = new JButton(" Delete a Contact ");
add(button1);
add(button2);
add(button3);
add(button4);
}
}
`
最佳答案
围绕“使用布局”有一些很好的答案。此示例支持相同的建议,但也介绍了将一种布局嵌套在另一种布局中的概念。例如。包含 JButton
的 JPanel
有一个 GridLayout
。该面板放置在面板的 NORTH
中,然后添加到主“gui”面板的 WEST
。
添加其他组件是为了显示按钮列可能如何与主用户界面中的其他组件结合在一起。
联系人.java
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
class Contact {
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
JPanel gui = new JPanel(new BorderLayout(5,5));
gui.setBorder( new EmptyBorder(3,3,3,3) );
JPanel controls = new JPanel( new BorderLayout(5,5) );
JPanel buttons = new JPanel(new GridLayout(0,1,4,4));
buttons.add( new JButton("Show") );
buttons.add( new JButton("Add") );
buttons.add( new JButton("Update Number") );
buttons.add( new JButton("Delete") );
buttons.setBorder( new TitledBorder("Contact") );
controls.add( buttons, BorderLayout.NORTH );
controls.add(new JScrollPane(new JTree()), BorderLayout.CENTER);
gui.add(controls, BorderLayout.WEST);
gui.add(new JTextArea("CardLayout for CRUD components.",10,30));
gui.add(new JLabel("Output label.."), BorderLayout.SOUTH);
JToolBar toolbar = new JToolBar();
toolbar.add(new JCheckBox("Auto save", true));
toolbar.add(new JCheckBox("Always On Top"));
gui.add(toolbar, BorderLayout.NORTH);
JOptionPane.showMessageDialog(null, gui);
}
};
SwingUtilities.invokeLater(r);
}
}
截图
关于java - 制作 JAVA GUI 时的布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776683/