所以即時創建服務器,並且工作良好,但是我有點卡在GUI上。你看,我希望它看起來像命令提示符,只有下一行是可編輯的,它不會讓你刪除任何其他文本。所以,現在我有:如何僅使JTextArea(+ JScrollPane)的下一行可編輯
JTextArea ta = new JTextArea();
JScrollPane sp = new JScrollPane(ta);
然後在框架的東西...
f.setTitle("Server");
f.setBounds(ss.width - 600, 50, 550, 350);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//added window listener so closes socket connection first
f.setAlwaysOnTop(true);
隨後將其加入:
f.add(sc);
jt.setBackground(Color.BLACK);
jt.setForeground(Color.WHITE);
//jt.setEditable(false);
最後,我用它來輸出到文本區的方法:
public static void append(String text) {
jt.append(text);
jt.append("\n\n"+System.getProperty("user.name")+"/"+getIp()+" > ");
jt.setCaretPosition(jt.getDocument().getLength());
}
現在我需要assig n一個字符串,用於在用戶按下Enter鍵後鍵入JTextArea:>?
jt.addActionListener(...{
public void ActioEvent(ActionEvent e){
String text = JTextArea.getLines().getLastLine().getText().replace(System.getProperty("user.name")+"/"+getIp()+" > ", "");
}
});
也許這樣的事情? 然後我需要它,以便只有「>」後面的部分是可編輯的?
在JTextArea下使用JTextField。 – 2014-10-06 16:53:18
但是,雖然這是更容易,這不是_really_我想要的 – 2014-10-06 16:57:58
它不是你想要的?除非我錯過了一些要求,這正是你要找的。這是解決這個問題的標準方法。請注意,您可以修改邊框以及文本組件的內容,以便它們看起來像是一個組件,如果這是您所擔心的。 – 2014-10-06 16:59:14