Hallo,
ich habe ein totales Anfängerproblem, komme aber einfach nicht weiter. Ich möchte gerne mit einem OK-Button den Eintrag aus dem JTextField in das JLabel eintragen. Mit dem Cancel-Button möchte ich den Eintrag im JTextField auf "Standardeintrag" zurücksetzen.
Ich bin noch neu in der OOP und kriege es nicht auf die Reihe, das JTextField auszulesen geschweige denn etwas reinzuschreiben. In der KeyListener-Klasse und den MouseListener-Klassen versuche ich erfolglos auf das JTextField bzw auf das JLabel zuzugreifen.
Muss ich den DocumentListener einbauen?
Was mache ich falsch?
Ich wäre für ein paar Stichworte oder Tipps sehr dankbar.
Grüße...
ich habe ein totales Anfängerproblem, komme aber einfach nicht weiter. Ich möchte gerne mit einem OK-Button den Eintrag aus dem JTextField in das JLabel eintragen. Mit dem Cancel-Button möchte ich den Eintrag im JTextField auf "Standardeintrag" zurücksetzen.
Ich bin noch neu in der OOP und kriege es nicht auf die Reihe, das JTextField auszulesen geschweige denn etwas reinzuschreiben. In der KeyListener-Klasse und den MouseListener-Klassen versuche ich erfolglos auf das JTextField bzw auf das JLabel zuzugreifen.
Muss ich den DocumentListener einbauen?
Was mache ich falsch?
Ich wäre für ein paar Stichworte oder Tipps sehr dankbar.
Grüße...
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BspGUI extends JFrame{
public BspGUI(String title) {
super(title);
// minor layout1 for panel1 is set as BorderLayout
// panel 1
Panel panel1 = new Panel();
panel1.setLayout(new BorderLayout());
// textfield
JTextField textfield = new JTextField("Standardeintrag");
textfield.setEditable(true);
textfield.addKeyListener(new MyKeyListener());
//textfield.getDocument().addDocumentListener(new MyDocumentListener());
// label
JLabel label = new JLabel("Standardeintrag");
panel1.add(label, BorderLayout.NORTH);
// adding textfield to panel1
panel1.add(textfield, BorderLayout.SOUTH);
// minor layout2 for panel2 ist set as FlowLayout
// panel 2
Panel panel2 = new Panel();
panel2.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
// OK-Button with closingfunction
JButton okButton = new JButton("OK");
okButton.addMouseListener(new MyMouseAdapterOk());
// Cancel-Button with closingfunction
JButton cancelButton = new JButton("Cancel");
cancelButton.addMouseListener(new MyMouseAdapterC());
// adding buttons to panel2
panel2.add(okButton);
panel2.add(cancelButton);
// major layout is set as BorderLayout
setLayout(new BorderLayout());
add(panel1, BorderLayout.NORTH);
add(panel2, BorderLayout.SOUTH);
setSize(200, 120);
addWindowListener(new MyWindowAdapter());
}
// DocumentListener for textfield
/*private class MyDocumentListener implements DocumentListener {
public void insertUpdate(DocumentEvent e) {
}
public void removeUpdate(DocumentEvent e) {
}
public void changedUpdate(DocumentEvent e) {
printIt(e);
}
private void printIt(DocumentEvent e) {
DocumentEvent.EventType type = e.getType();
}
}
*/
// Adapter for clicking on OK closes Window
private class MyMouseAdapterOk extends MouseAdapter {
public void mouseClicked(MouseEvent event) {
label.setText(textfield.getText());
}
}
// Adapter for clicking on Cancel closes Window
private class MyMouseAdapterC extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
label.setText("Standardeintrag");
textfield.setText("Standardeintrag");
}
}
// Adapter for clicking on x closes Window
private class MyWindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
}
// Adapter for pushing Esc closes Window and Enter enters Text to console
private class MyKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.VK_ESCAPE) {
System.exit(0);
}
else if (event.getKeyCode() == KeyEvent.VK_ENTER) {
label.setText(textfield.getText());
}
}
}
public static void main(String[] args) {
BspGUI bspgui = new BspGUI("BspGUI");
bspgui.setVisible(true);
}
}