我正在尝试创建一个可滚动的文本区域(就像我现在正在编写的那样,就像在堆栈溢出中一样)。似乎滚动窗格和文本区域是互斥的,我想在它们之间建立连接
package Notepad;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import javax.swing.JTextArea;
import javax.swing.JScrollBar;
public class test {
private JFrame frame;
private Font f = new Font(null);
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test window = new test();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public test() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout(0, 0));
JTextArea textArea = new JTextArea();
frame.getContentPane().add(textArea, BorderLayout.CENTER);
textArea.setLineWrap(true);
textArea.setFont(f.deriveFont(40f));
JScrollBar scrollBar = new JScrollBar();
frame.getContentPane().add(scrollBar, BorderLayout.EAST);
}
}
答案 0 :(得分:1)
JTextArea textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setFont(f.deriveFont(40f));
JScrollPane scrollPane = new JScrollPane(textArea);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
答案 1 :(得分:1)
使用JScrollPane
而不是JScrollBar
错:
JScrollBar scrollBar = new JScrollBar();
右:
JScrollPane scroller = new JScrollPane(textArea);
您可以像这样设置此ScrollPane的大小:
Dimension size = new Dimension (0, 50);
scroller.setPreferredSize(size);
注意:当您使用JScrollPanes
时,请确保将其放在括号中,否则它将无法显示。
答案 2 :(得分:0)
编辑:
有效。谢谢你们!!!“