我的JScrollPane
内有JPanel
:
JPanel workspace = new JPanel();
workspace.setLayout(new BoxLayout(workspace, BoxLayout.Y_AXIS));
//create scrollPane and add workspace to it
JScrollPane scroll = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setViewportView(workspace);
工作区是一组复杂的多级JPanels
和JTextAreas
。
其中一个JTextAreas
称为q
。
我希望我的JScrollPane
在收到焦点时滚动到它:
JTextArea q = new JTextArea();
workspace.add(q);
q.requestFocus();
Main.scroll.getViewport().scrollRectToVisible(q.getBounds());
JTextArea在我开始输入文本后立即进入可见部分,但我希望它一旦创建就可以看到...
但是,上面的代码不起作用,它什么都不做。实际上,JScrollPane
只是保持在代码之前......
我做错了什么?