![](/img/trans.png)
[英]Coloring multiple lines of text differently using JTextArea and StringBuilder
[英]Read text in JTextArea into StringBuilder
我嘗試將文本區域中的所有行讀入StringBuilder,以便可以將文本區域中的文本用作整個字符串 。 但是我在s.append(line);行中得到了NullPointerException ; 。 為什么?
public class tu extends JFrame implements ActionListener{
JTextArea t;
static StringBuilder s;
tu (){
setLayout(/*new BorderLayout()*/null);
t=new JTextArea(30,77);
JScrollPane s=new JScrollPane(t,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
JButton b=new JButton("process");
b.addActionListener(this);
JPanel p=new JPanel();
JPanel p1=new JPanel();
p.add(s);
p.setBorder(new TitledBorder("sequence"));
p.setBounds(0,0,880,540);
p1.add(b);
p1.setBounds(380,570,100,40);
add(p);
add(p1);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(900,700);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String text=t.getText();
while (text!=null){for (String line : text.split("\\n")){
s.append(line);
}}
}
public static void main(String[] args){
tu t=new tu();
}
}
嘗試在尚未實例化的對象上調用任何方法將導致NPE
。 您需要實例化StringBuilder
s
:
StringBuilder s = new StringBuilder();
您是否真的要等到用戶單擊JButton
才構建此StringBuilder
的內容? StringBuilders
通常用作具有局部范圍的按需幫助對象。
需要注意的一些事情:
當您要寫入StringBuilder時,它仍然為null。
您需要在追加之前實例化StringBuilder。
s = new StringBuilder();
順便說一下,您的StringBuilder和JScrollPane具有相同的變量名,您應該使用不同的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.