繁体   English   中英

Java Swing GUI对齐问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM