我不知道我是否错过了什么或者这是一个错误 我创建了一个包含多个JTextArea的面板 但滚动窗格让我只滚动到第22行。但是有70行 当我调整框架大小时,滚动窗格也会调整大小,我可以看到比仅使用滚动条向下滚动时更多的行。
不要介意内部的代码
州1:Image
州2:Image
有七十条线! 但我不能滚动到他们
有什么建议吗?
我只设置了rowheaderView:
jScrollPane1.setRowHeaderView(codeTextArea2.getRowNumbers());
viewportView:
jScrollPane1.setViewportView(codeTextArea2);
codeTextArea2是扩展JPanel并包含多个JTextArea的自定义类
答案 0 :(得分:4)
+1到HFOE评论
别介意
中的代码
我们考虑内部代码的原因:
这似乎对我来说很好,因为我没有你的代码我模拟了我最简单的形式。
简单JPanel
类,其中包含70行和20列的单个JTextArea
,每个都按正常大小的简单append(..)
给出一个数字,并且最大化行数似乎不会改变
(这个太大了,无法完全放大屏幕)
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class Test {
public Test() {
createAndShowGui();
}
private void createAndShowGui() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanelTextAreas panelWithTextAreas = new MyPanelTextAreas();
JScrollPane jsp = new JScrollPane(panelWithTextAreas);
jsp.setPreferredSize(new Dimension(500, 400));//dont want it too big
frame.add(jsp);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Test();
}
});
}
}
class MyPanelTextAreas extends JPanel {
JTextArea area = new JTextArea(70, 20);
public MyPanelTextAreas() {
setLayout(new BorderLayout());
add(area);
for (int i = 1; i <= 70; i++) {
area.append((i == 1 ? "" : "\n") + i);
}
area.setCaretPosition(1);
}
}