java - GUI JTextArea & JScrollPane & 定位

标签 java swing layout-manager

我想从 x, y 位置 JTextArea 开始添加滚动窗口。 问题是,当我可视化代码时,它会填充 500x500 窗口,而我只想在 x、y 位置填充 200x200 的完整区域。

我做错了什么?这是我的代码:

public static void main(String args[])
{
    JFrame window = new JFrame();
    window.setSize(500, 500);
    window.setResizable(false);

    JTextArea ta = new JTextArea("Default message");
    ta.setEditable(true);

    JScrollPane scroll = new JScrollPane(ta);
    scroll.setBounds(10,10,200,200);
    window.add(scroll);

    window.setVisible(true);
}

最佳答案

不要使用 setBounds() 来设置组件的大小。 Swing 使用布局管理器来调整组件的大小。

默认情况下,JFrame 使用 BorderLayout,您将组件添加到 CENTER,以便组件占用所有可用空间。

而是做类似的事情:

JTextArea text Area = new JTextArea(5, 40);
JScrollPane scrollPane = new JScrollPane( textArea );
frame.add(scrollPane, BorderLayout.NORTH);
frame.pack();
frame.setVisible();

当您显示框架时,文本区域将占据整个空间,但如果您将框架调整得更大,那么文本区域将只显示在北边,而在中心将有空白区域。

关于java - GUI JTextArea & JScrollPane & 定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984207/

相关文章:

java Swing : how to keep one component left aligned with another component centered with respect to parent

resize - 网格调整大小

java - 在kafka中创建多少生产者?

java - 面向 Java 初学者的免费视频播客/教程

java - KeyListener 在 JFrame 中随机工作

java - 选择 JTable 单元格中包含的 JComboBox 上的项目

java - 多个 JFrame

java - 如何在 mavenized 多模块项目中从 CheckStyle 分析中排除包?

java - GCMIntentService onRegistered 方法除了 regId 之外还需要发送附加信息到我的服务器

java - JFrame、删除和创建 JPanel