D
dhachim
Gast
Code:
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextArea;
public class Textbox extends Frame implements ActionListener{
private Panel panel = null;
private JButton jButton = null;
private JButton jButton1 = null;
private JTextArea jTextArea = null;
/**
* This method initializes panel
*
* @return java.awt.Panel
*/
private Panel getPanel() {
if (panel == null) {
panel = new Panel();
panel.setLayout(null);
panel.setBounds(new java.awt.Rectangle(3,23,292,171));
panel.add(getJButton(), null);
panel.add(getJButton1(), null);
panel.add(getJTextArea(), null);
}
return panel;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new java.awt.Rectangle(188,21,99,26));
jButton.setText("send");
jButton.addActionListener(new SenderButton(jTextArea) {
});
}
return jButton;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new java.awt.Rectangle(211,71,70,22));
jButton1.setText("clear");
jButton1.addActionListener(this);
}
return jButton1;
}
/**
* This method initializes jTextArea
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
jTextArea.setBounds(new java.awt.Rectangle(9,15,171,150));
jTextArea.setLineWrap(true);
jTextArea.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT);
jTextArea.setColumns(1);
jTextArea.setBackground(new java.awt.Color(246,244,244));
jTextArea.setWrapStyleWord(true);
}
return jTextArea;
}
/**
* @param args
*/
/**
* This is the default constructor
*/
public Textbox() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setLayout(null);
this.setSize(300, 200);
this.setResizable(false);
this.setTitle("Frame");
this.add(getPanel(), null);
this.setVisible(true);
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
Textbox tb = new Textbox();
tb.getPanel();
}
//Löschen der Textbox
public void actionPerformed(ActionEvent e) {
String text = jTextArea.getText();
System.out.println(text);
jTextArea.setText("");
}
} // @jve:decl-index=0:visual-constraint="163,6"
class SenderButton implements ActionListener{
JTextArea myTextArea;
public SenderButton(JTextArea ta){
myTextArea = ta;
}
public void actionPerformed(ActionEvent e) {
String text ;
text = myTextArea.getText();
System.out.println(text);
}
}
Soweit habe ich es schon. Das Problem besteht darin, dass ich 2 Buttons habe, die auf verschiedene Actionlistener reagieren müssen.
Der clear Button finktioniert auch einwandfrei und das was ich getippt habe, wird auch in der konsole als String ausgegeben.
Aber der Send Button muss auf einen Listener in einer extra dafür angelegten Klasse zugreifen. Oder ?
Nun es sind keine fehler im Code, die Eclipse mir anzeigt, aber wenn ich im laufendem Programm den Send Button betätige passiert folgendes:
java.lang.NullPointerException
at SenderButton.actionPerformed(Textbox.java:139)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Was mich nun wundert, ist wenn ich nur einen System out in den zweiten ActionListener packe, dann klapppt es auch, aber sobald ich mit methoden arbeite geht gar nix. Die Frage ist nun was mache ich falsch ?
Danke schonmal für eure mühen