【问题标题】:Java - Swing - window full of componentsJava - Swing - 充满组件的窗口
【发布时间】:2016-08-26 12:33:55
【问题描述】:

我有一个 JFrame、JPanel 和一个 JButton,按钮在面板中的坐标(100、1000)处,面板(具有绝对布局)在框架中,并且框架的尺寸为(500、500)。我想要的是能够滚动窗口以到达窗口底部下方的按钮。这是代码:

public static void main(String...args)
{
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    JButton button = new JButton("Test");

    frame.setSize(500, 500);
    frame.getContentPane().add(panel);

    panel.setLayout(null);

    button.setBounds(100, 1000, 100, 30);
    panel.add(button);
}

如何才能滚动窗口以到达按钮?你能用这个按钮写一个简单的代码吗?

【问题讨论】:

  • Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同的语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
  • “你能写一个简单的代码吗”我当然可以。但 SO 不是您的个人代码生成服务。

标签: java swing components


【解决方案1】:

您可以简单地使用 JScrollPane。 P.S:我不明白为什么你为按钮的 Y 位置设置 1000,即使你的框架大小为 500

JScrollPane jYourScrollPane = new JScrollPane(panel);
frame.add(jYourScrollPane);

编辑:setLayout(null);使您的面板布局绝对。检查这些答案answer1answer2

【讨论】:

  • 它不起作用,它出现一个没有scrollPane的窗口 JFrame wnd = new JFrame(); JPanel 面板 = 新 JPanel(); JButton 按钮 = new JButton("Test"); JScrollPane 滚动 = 新 JScrollPane(面板); button.setBounds(100, 1000, 70, 30); panel.setLayout(null); panel.add(按钮); wnd.setSize(600, 500); wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); wnd.add(滚动); wnd.setVisible(true);
  • 为你编辑了我的答案@TommasoSalvetti
【解决方案2】:
this.revalidate();  //for swing.

应该更新你的框架并让你的按钮等显示出来。

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多