Java 如何设置JScrollPane的大小和位置?

Java 如何设置JScrollPane的大小和位置?,java,swing,resize,jscrollpane,Java,Swing,Resize,Jscrollpane,我试图在JFrame中设置JScrollPane的大小和位置,它的JViewport是JTextArea 以下是我正在使用的代码: private static JFrame frame = new JFrame(); public static void main(String... args) { frame.setTitle("Friend App"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f

我试图在
JFrame
中设置
JScrollPane
的大小和位置,它的
JViewport
JTextArea

以下是我正在使用的代码:

private static JFrame frame = new JFrame();

public static void main(String... args) {
    frame.setTitle("Friend App");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800, 600);
    JTextArea textArea = new JTextArea();
    JScrollPane scrollPane = new JScrollPane(textArea);
    scrollPane.setLayout(null);
    scrollPane.setLocation(30, 30);
    scrollPane.setSize(new Dimension(100, 100));
    frame.add(scrollPane);
    textArea.append("test");
    frame.setVisible(true);

}
我还应该做什么来调整JScrollPane的大小并设置其位置?我在这里使用的是最好的方法吗


注意:
scrollPane.setLayout(null)
不起任何作用,
frame.pack()
不是我想要的。

滚动窗格被添加到默认具有BorderLayout的JFrame内容窗格中。BorderLayout忽略零部件的位置和尺寸


您应该使用另一个LayoutManager(或者您可以为内容窗格使用空布局,但这不是一个好方法)。

滚动窗格将添加到JFrame的内容窗格中,默认情况下该窗格具有BorderLayout。BorderLayout忽略零部件的位置和尺寸


您应该使用另一个LayoutManager(或者您可以对内容窗格使用null布局,但这不是一个好方法)。

我应该更改JFrame的布局,而不是组件的布局,对吗?或者简单地在框架中添加一个JComponent来保留框架的布局,我认为这样更好?是的。要使组件具有所需的位置,请将适当的布局设置为组件的容器(在您的案例中是JFrame的内容窗格),我应该更改JFrame的布局,而不是组件的布局,对吗?或者简单地在框架中添加一个JComponent来保留框架的布局,我认为这样更好?是的。为了让组件具有所需的位置,为组件的容器(在您的例子中是JFrame的内容窗格)设置适当的布局,Java GUI必须在不同的环境中使用不同的PLAF在不同的操作系统、屏幕大小、屏幕分辨率等上工作。因此,它们不利于像素完美布局。相反,使用布局管理器,或者与布局填充和边框一起使用。1)为了更快地获得更好的帮助,请发布或。2) 提供最小尺寸的ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则具有更大的宽度和高度。@Anderthompson不会有一个CSSLayout,我可以通过XML简单地将css应用于特定组件,对吗?或者是JavaFX?“或者是JavaFX?”是的。有人愿意回答这个问题来使用JavaFX显示HTML5/CSS3布局管理器吗?然后我可以再次实现LayoutManager,加载CSS和HTML并将它们应用于JComponents…Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。相反,使用布局管理器,或者与布局填充和边框一起使用。1)为了更快地获得更好的帮助,请发布或。2) 提供最小尺寸的ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则具有更大的宽度和高度。@Anderthompson不会有一个CSSLayout,我可以通过XML简单地将css应用于特定组件,对吗?或者是JavaFX?“或者是JavaFX?”是的。有人愿意回答这个问题来使用JavaFX显示HTML5/CSS3布局管理器吗?然后我可以再次实现LayoutManager,加载CSS和HTML并将它们应用于JComponents。。。