0
我有一個Java應用程序連接到設備,並在JTextArea
中顯示日誌。我希望JTextArea
是可滾動的,我已經通過將它放入JScrollPane
。包含JTextArea
的JScrollPane
位於BorderLayout
的CENTER
部分。我使用pack()
來設置JFrame
的大小,直到它被顯示。但是,這也存在一些問題:如何使JTextArea可滾動但仍然有高度設置?
由於沒有高度的
JTextArea
顯得非常單薄設置,文本不能被看到很好(在第二張照片居然有文本):對於
JTextArea
設置的首選尺寸,它似乎起初工作正常。但是,如果有更多文本滾動條不按預期方式顯示。無論JTextArea
中的文字數量如何,JFrame
都會調整大小。這也不會通過滾動顯示所有文字。此外,設置最小高度不幫助;它會導致與第一種情況相同的結果。
我初始化幀碼:
JButton connectBtn, disconnectBtn;
JTextArea logArea;
public MyApplication() throws HeadlessException {
super();
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new MyWindowListener()); // Disconnect and exit on close
setLayout(new BorderLayout());
connectBtn = new JButton("Connect");
disconnectBtn = new JButton("Disconnect");
disconnectBtn.setEnabled(false);
connectBtn.addActionListener(new ConnectListener()); // Connects to device
disconnectBtn.addActionListener(new DisconnectListener()); // Disconnects from device
logArea = new JTextArea();
logArea.setEditable(false);
// Whatever fixes the problem goes here... e.g.
// logArea.setPreferredSize(new Dimension(100, 200));
JPanel buttons = new JPanel(new BorderLayout());
buttons.add(connectBtn, BorderLayout.LINE_START);
buttons.add(disconnectBtn, BorderLayout.LINE_END);
add(buttons, BorderLayout.PAGE_START);
add(new JScrollPane(logArea), BorderLayout.CENTER);
pack();
setVisible(true);
}
謝謝,它的工作原理! – Pietu1998