【发布时间】:2021-12-28 14:09:06
【问题描述】:
我试图让这个 GUI 上的这个文本区域有一个滚动,但是当我尝试添加它时,文本区域会覆盖滚动条,反之亦然。没有错误。代码:
// Text Area at the Center
JTextArea ta = new JTextArea ( 16, 58 );
ta.setEditable ( false ); // set textArea non-editable
JScrollPane scroll = new JScrollPane ( ta );
scroll.setVerticalScrollBarPolicy ( ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS );
send.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent send) {
String data = tf.getText();
ta.append("You: " + data + "\n");
tf.setText("");
System.out.println(data);
}
});
//Adding Components to the frame.
frame.getContentPane().add(BorderLayout.SOUTH, panel);
frame.getContentPane().add(BorderLayout.CENTER, ta);
frame.add(ta);
ta.add(scroll);
frame.setVisible(true);
【问题讨论】:
-
我通常在显示之前
.pack()我的 JFrame。你试过吗? -
ta.add(scroll)JScrollPane 添加到JTextArea。上面的两行也是不正确的。不要将JTextArea添加到您的框架中,因为文本区域位于JScrollPane的视口内(因为您将其提供给了滚动窗格构造函数)。正确的方法是将scroll添加到您的JFrame,例如frame.add(BorderLayout.CENTER, scroll). -
@maloomeister 谢谢你的回答,成功了。
标签: java swing user-interface scroll