[英]JTextArea doesn't show up
public class Server extends JFrame{
private JLabel ipLabel;
private JTextField ipTextField;
private JLabel portLabel;
private JTextField portTextField;
private JTextArea messagesTextArea;
public Server(String title){
super(title);
setLayout(new GridBagLayout());
Container container = getContentPane();
GridBagConstraints gc = new GridBagConstraints();
ipLabel = new JLabel("IP Address: ");
gc.gridx = 0;
gc.gridy = 0;
container.add(ipLabel, gc);
ipTextField = new JTextField();
ipTextField.setColumns(15);
gc.gridx = 1;
gc.gridy = 0;
container.add(ipTextField, gc);
portLabel = new JLabel("Port: ");
gc.gridx = 2;
gc.gridy = 0;
container.add(portLabel, gc);
portTextField = new JTextField();
portTextField.setColumns(4);
gc.gridx = 3;
gc.gridy = 0;
container.add(portTextField, gc);
// I think this is the problem
messagesTextArea = new JTextArea();
gc.gridx = 0;
gc.gridy = 1;
container.add(messagesTextArea, gc);
}
}
JTextArea 不顯示。 我正在使用 GridBagLayout。 這是我的代碼。 有什么問題?
這是我的主要方法。
public class MainFrame {
private static Server server;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
server = new Server("Server");
server.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
server.setBounds(dimension.width/4, dimension.height/4, dimension.width/2, dimension.height/2);
server.setVisible(true);
}
});
}
}
始終將JTextArea
添加到JScrollPane
否則當文本區域中的行數大於框架的高度時會產生問題。
JScrollPane jScrollPane=new JScrollPane(messagesTextArea);
container.add(jScrollPane, gc);
並嘗試
gc.fill=GridBagConstraints.BOTH;
gc.weighty=0.9;
gc.weightx=0.8;
使用weighty
和weightx
以組件的百分比設置大小。
使用fill
水平或垂直或同時填充所有可用空間。
有關更多信息,請查看如何使用 GridBagLayout
不是調用空構造函數,而是使用JTextArea(int, int)來設置行和列的大小,如下所示:
// JTextArea with 1 row and 50 columns
messagesTextArea = new JTextArea(1,50);
沒有參數的構造函數創建了一個具有 0 行和 0 列的 JTextArea,因此您什么也看不到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.