[英]Java Swing GUI alignment problem
问候,
我正在快速学习Java,但是我真正能克服的问题是Java GUI编程。 来自C#的轻松生活,这是使我的UI正常工作的一个完全挑战。 我知道绝对布局是这里的问题。
我正面临以下问题。
在我的内容窗格(BorderLayout)中,我有一个带有JTable的JScrollPanel和一个位于应用程序顶部的菜单。
问题是,我想在边框布局的南部添加一个组件(JScrollPane附加到中心),并且想向其添加可滚动的JTextArea。
我的强项是,添加一个新的JPanel,给它一个布局(不要知道在这种情况下哪个是最好的。欢迎提出建议),在该面板上添加一个JScrollpanel,并在其顶部添加一个JTextArea。 我已经尝试过了,并且在图形上很明智,它确实有效。 但是,尽管可能很笨拙,但JTextArea的高度却足够大,就像JTextField一样。
我希望它是ATLEAST 4行高并且可滚动。 这是我的GUI代码:
setTitle("Game Manager");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 620, 498);
JMenuBar mbMainMenu = new JMenuBar();
setJMenuBar(mbMainMenu);
JMenu mnFile = new JMenu("File");
mbMainMenu.add(mnFile);
contentPane = new JPanel();
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JScrollPane scrollPane = new JScrollPane();
contentPane.add(scrollPane, BorderLayout.CENTER);
tblGames = new JTable(new GamesTableModel(mainController.retrieveGames()));
tblGames.setShowVerticalLines(true);
tblGames.setShowHorizontalLines(true);
tblGames.setPreferredScrollableViewportSize(new Dimension(500, 70));
tblGames.setFillsViewportHeight(true);
tblGames.setAutoCreateRowSorter(true);
tblGames.getTableHeader().setReorderingAllowed(false);
scrollPane.setViewportView(tblGames);
因此,在JTable下方,我想在JScrollPane中有一个JtextArea,其高度比一行高。
我对此完全不知所措。
欢迎任何提示,不仅限于gui本身,还涉及命名约定。
这个项目只是为了自学,因为我们学校想教C#而不是Java。 Java对我来说比C#更自然。在我看来,Java打字的方式更好。
请留下您的评论/提示/答案^^
非常感谢您的帮助!
解:
JScrollPane gameDescriptionScrollPane = new JScrollPane();
contentPane.add(gameDescriptionScrollPane, BorderLayout.SOUTH);
taGameDescription = new JTextArea();
taGameDescription.setRows(4);
谢谢:mklhmnn
每日一课:仔细阅读文档,而不仅仅是看文档并认为自己已阅读!
您有两种选择:
JTextArea
或 JScrollPane
的最小和首选大小
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.