我正尝试使用Java编写GUI(不使用GUI工具)来创建GUI。Swing/AWT - 以编程方式创建GUI
我试图创建类似下面的图片,但它不会按照我想要的那样出现。
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设置或如何任何想法:
这也是迄今为止的代码(它被称为铅笔样机应用程序创建)通过编码实现它?
不想使用GUI工具的原因是什么?他们让生活变得更容易。 – kevingreen 2012-04-03 18:52:52
@kevingreen:一个重要的原因是在使用GUI工具之前帮助你更好地理解Swing。如果您在使用GUI工具解决问题时遇到困难,那么您将更容易理解如何解决问题。我极力鼓励在这个努力中的原始海报。 1+。并且1+以kevingreen为出色的答案在下面。 – 2012-04-03 19:00:03
@HovercraftFullOfEels我感觉相反。我认为在构建时看到Swing布局的视觉表示将帮助Brian看到事情如何以比尝试/编译/错误周期更容易的方式进行交互。您可以随时查看代码(Eclipse/Netbeans)。 Netbeans将允许您自定义代码并立即在GUI工具中渲染它们。 但无论如何,我也鼓励这种努力。 – kevingreen 2012-04-03 19:03:36