Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将大文本解析为文本字段,如何设置文本开头的视图位置_Java_Swing - Fatal编程技术网

Java 将大文本解析为文本字段,如何设置文本开头的视图位置

Java 将大文本解析为文本字段,如何设置文本开头的视图位置,java,swing,Java,Swing,在本例中,当解析大文本时,它的文本字段“仍然爱你-蝎子”如下-> . 我想,从头开始看。滚动条也有问题,使用Jlist上的JScrollPane,当它因为大文本而需要滚动时,在初始化时,它会取下滚动条,就像我为textfield描述的那样 将此代码用于textfield: textField_1 = new JTextField(); textField_1.setEditable(false); textField_1.setColumns(10);

在本例中,当解析大文本时,它的文本字段“仍然爱你-蝎子”如下->
. 我想,从头开始看。滚动条也有问题,使用Jlist上的JScrollPane,当它因为大文本而需要滚动时,在初始化时,它会取下滚动条,就像我为textfield描述的那样

将此代码用于textfield:

textField_1 = new JTextField();
        textField_1.setEditable(false);
        textField_1.setColumns(10);
        textField_1.setBounds(149, 33, 129, 20);
        frame.getContentPane().add(textField_1);
框架,具有绝对布局:

frame = new JFrame();
        frame.setBounds(100, 100, 317, 516);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

您只需添加以下行:

textfield_1.setCaretPosition ( 0 );
此外,不应尽可能多地使用
绝对定位

虽然可以不使用布局管理器,但如果可能的话,应该使用布局管理器。布局管理器可以更轻松地调整依赖于外观的组件外观、不同的字体大小、容器不断变化的大小以及不同的区域设置。布局管理器也可以被其他容器以及其他程序轻松重用 有关更多信息,请查看

编辑1:

关于JScrollPane

我们可以通过两种方式实现这一目标:

1.在
JScrollPane
上使用,
setPreferredSize(…)
,例如: 2.或者可以为所述
JComponent
重写,
getPreferredSize()
,如:
我现在试过了,因为我没有在初始化时放置文本,所以我需要在每次解析时(程序运行时(从数据库获取文本)),在那一行之后,再加上这一行(setCaretPosition),有没有其他解决方案,比如在初始化文本字段上只设置一次?如果你能告诉我如何使用滚动条?Naa,但是您可以保留这一行,在这里您可以实际获取
JTextField
的文本。关于
JScrollPane
“滚动条也有问题,使用Jlist上的JScrollPane,当它需要滚动时,因为大文本,初始化时,它会向下滚动,就像我为textfield描述的那样。”@RadijatoR:请查看最新编辑。希望这能有所帮助
myList = new JList ( listData );
JScrollPane listScroller = new JScrollPane ();
listScroller.setViewportView ( myList );
listScroller.setPreferredSize ( new Dimension ( 100, 100 ) ) ;
contentPane.add ( listScroller );
myList = new JList ( listData );
JScrollPane listScroller = new JScrollPane () {
    @Override
    public Dimension getPreferredSize () {
        return new Dimension ( DIMENSION, DIMENSION );
    }
};
listScroller.setViewportView ( myList );
contentPane.add ( listScroller );