问候,
我正在快速学习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#..在我看来,它更好地打字......足够关于涉猎。
请留下您的意见/提示/回答^^
非常感谢您的帮助!
溶液:
JScrollPane gameDescriptionScrollPane = new JScrollPane();
contentPane.add(gameDescriptionScrollPane, BorderLayout.SOUTH);
taGameDescription = new JTextArea();
taGameDescription.setRows(4);
谢谢:mklhmnn
每日课程:仔细阅读文档,而不仅仅是关注它并认为你已经阅读过了!
答案 0 :(得分:1)
您有两种选择:
JTextArea
JScrollPane