我正在尝试通过Java(不使用GUI工具)对Java进行手工编码来创建GUI。
我正在尝试创建如下图所示的内容,但是并没有如我所愿。 (它是由一个名为Pencil的样机应用程序创建的)
到目前为止,这是代码:
import java.awt.*;
import javax.swing.*;
import javax.swing.JTable;
public class GUI extends JFrame {
public void buildGui() {
JFrame frame = new JFrame("Hotel TV Scheduler");
Container contentPane = frame.getContentPane();
contentPane.setLayout(new FlowLayout());
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
JPanel listPanel = new JPanel();
listPanel.setLayout(new FlowLayout());
JTable chOneTable = new JTable();
JTable chTwoTable = new JTable();
JTable listTable = new JTable();
JButton rmvChOneButton = new JButton("Remove Channel");
JButton rmvChTwoButton = new JButton("Remove Channel");
listPanel.add(chOneTable);
listPanel.add(chTwoTable);
listPanel.add(listTable);
listPanel.add(rmvChOneButton);
listPanel.add(rmvChTwoButton);
JPanel infoPanel = new JPanel();
infoPanel.setLayout(new GridLayout());
JLabel titleLabel = new JLabel("Title");
JLabel genreLabel = new JLabel("Genre");
JLabel durationLabel = new JLabel("Duration");
JLabel actorLabel = new JLabel("Actor");
JLabel directorLabel = new JLabel("Director");
JLabel rentLabel = new JLabel("Rentable");
JLabel synopsisLabel = new JLabel("Synopsis");
JTextField txtTitle = new JTextField();
JTextField txtGenre = new JTextField();
JTextField txtDuration = new JTextField();
JTextField txtActor = new JTextField();
JTextField txtDirector = new JTextField();
JTextField txtSynopsis = new JTextField();
JCheckBox rentCB = new JCheckBox();
infoPanel.add(titleLabel);
infoPanel.add(txtTitle);
infoPanel.add(genreLabel);
infoPanel.add(txtGenre);
infoPanel.add(durationLabel);
infoPanel.add(txtDuration);
infoPanel.add(actorLabel);
infoPanel.add(txtActor);
infoPanel.add(directorLabel);
infoPanel.add(txtDirector);
infoPanel.add(rentLabel);
infoPanel.add(rentCB);
infoPanel.add(synopsisLabel);
infoPanel.add(txtSynopsis);
contentPane.add(listPanel);
contentPane.add(infoPanel);
frame.setVisible(true);
}
}
我可以用来创建GUI设置的布局有什么想法,或者如何通过编码来实现它?
最佳答案
检查A Visual Guide to Layout Managers。这将帮助您选择布局。
另外,考虑在面板中使用面板。每个都有所需的布局,以实现您所需的外观。没有GUI构建工具,您将需要编译/运行/编译/运行……以查看事物的布局。