【问题标题】:How to scroll resized jframe(GUI Java app)如何滚动调整大小的 jframe(GUI Java 应用程序)
【发布时间】:2020-08-23 07:53:59
【问题描述】:

我已经厌倦了为我的问题寻找解决方案,也就是说,我有 Java swing 应用程序,带有 Jframe、JtabbedPane 和 4 个 Jpanel。框架设置为

frmPartsWarehouse.setExtendedState(frmPartsWarehouse.MAXIMIZED_BOTH);
frmPartsWarehouse.setResizable(true);
frmPartsWarehouse.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmPartsWarehouse.getContentPane().setLayout(new BorderLayout(0, 0));

现在,当屏幕尺寸小于组件时,有没有办法设置滚动,我现在这个问题出在 Jpanel 上,因为布局设置为绝对(空)并且组件总是在同一个地方,但是有没有办法当屏幕较小时获得滚动窗口。例如,屏幕为 1024x768 或更大时可以,但当屏幕为 1024x600(笔记本电脑 10``)时,我看不到所有组件

【问题讨论】:

  • layout 设置为 absolute(null) - 这就是问题所在。 Swing 旨在与布局管理器(不是空布局)一起使用。只有使用布局管理器时,滚动才能正常工作

标签: java swing user-interface jframe jscrollpane


【解决方案1】:

我为有同样问题的人找到了解决方案 我已将框架布局更改为 gridLayout,而不是创建 JScrollPane 并添加选项卡式窗格以滚动,并滚动到框架内容窗格,代码是这样的

frmPartsWarehouse.getContentPane().setLayout(new GridLayout(0, 1,0,0)); 

    JTabbedPane tabPane = new JTabbedPane();
    tabPane.setPreferredSize(new Dimension(1327,678));
    JScrollPane scroll = new JScrollPane(tabPane);      
    scroll.setEnabled(true);
    frmPartsWarehouse.getContentPane().add(scroll);

滚动只会滚动到 tabbPane 的首选大小! 是的,这是解决这个问题的方法,但在我的情况下使用 gridBagLayout 会更好,因为框架不会取决于屏幕尺寸,组件会根据屏幕尺寸放大,但它适用于滚动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多