gpt4 book ai didi

java - 将两个面板彼此相邻对齐

转载 作者:行者123 更新时间:2023-12-01 13:10:50 26 4
gpt4 key购买 nike

我目前正在尝试创建一个脚本编辑器。但 lineNumber JPanel 并未与 JTextArea 顶部对齐。 lineNumber JPanel 显示在 JTextArea 右侧的中心。

看起来像这样:

enter image description here

这是实例化这两个组件的类:

private ScriptEditor() {

((FlowLayout) this.getLayout()).setVgap(0);
((FlowLayout) this.getLayout()).setHgap(0);

//This is the lineNumber JPanel which has no LayoutManager set.
lineNumPanel = new LineNumberPanel();

//I tried setAlignmentY but it did not work
lineNumPanel.setAlignmentY(TOP_ALIGNMENT);

//The text area.
scriptArea = new JTextArea(22,15);
scriptArea.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 15));
scriptArea.setMargin(new Insets(3, 10, 3, 10));


//This JPanel contains the two components: lineNumber JPanel and the JTextArea
JPanel temp = new JPanel();
temp.add(lineNumPanel);
temp.add(scriptArea);

//Set the scrollPane
JScrollPane scrollPane = new JScrollPane(temp);
scrollPane.setPreferredSize(new Dimension(width, height));

//Add the scrollPane to this JPanel.
add(scrollPane);
}

最佳答案

JPanel temp = new JPanel();

默认情况下,JPanel 使用 FlowLayout。 FlowLayout 将添加到面板的组件垂直居中。如果您不喜欢这种行为,请尝试不同的布局管理器,例如水平 BoxLayout ,这将允许您根据组件的垂直对齐方式在顶部/中心/底部对齐组件。

但是,使用 JPanel 并不是最好的方法。相反,您应该将行号组件添加到滚动 Pane 的行标题中。请参阅Text Component Line Number有关此方法的示例。

关于java - 将两个面板彼此相邻对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22884632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com