StarSeven hat gesagt.:Hallo, kann mir jemand ein ganz einfaches Beispiel für den Modell-View-Controller geben?
Z.B. das wenn man in ein Text Feld etwas eingibt es auch auf ein Label daneben erscheint.
Das kann man doch damit machen oder?
Danke für die Hilfe in vorraus.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class MyExample extends JFrame
implements CaretListener // Implementiert den CaretListener
{
JPanel pExample = (JPanel)this.getContentPane();
JTextField tfExample = new JTextField();
JLabel lExample = new JLabel("");
MyExample()
{
tfExample.setColumns(30);
tfExample.addCaretListener(this); // Fügt JTextField den CaretListener hinzu
pExample.setLayout(new BorderLayout());
pExample.add(tfExample, BorderLayout.NORTH);
pExample.add(lExample, BorderLayout.SOUTH);
}
public void caretUpdate(CaretEvent e) // Aufgerufen beim verändern des TextFeldes
{
lExample.setText(tfExample.getText());
}
}
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
public class caret {
JLabel label = new JLabel();
JTextField textfeld = new JTextField();
public static void main(String args[]) {
caret caretlistener = new caret();
caretlistener.example();
}
public void example() {
JFrame frame = new JFrame("Ich bin ein Frame ^^");
JPanel panel = new JPanel();
frame.setLocation(100, 100);
frame.setSize(200, 80);
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(1, 2));
panel.add(textfeld);
panel.add(label);
textfeld.addCaretListener(); //Hier liegt das Problem
frame.setVisible(true);
}
public void caretUpdate(CaretEvent e) {
label.setText(textfeld.getText());
}
}
StarSeven hat gesagt.:Wo hier liegt das Problem steht wird mir ein Fehler angezeigt, du hast dort den Konstruktor (ist doch einer oder?) this übergeben, aber ich müsste das doch eigentlich nicht bei diesem Beispiel machen oder?Code:import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; //import javax.swing.event.CaretEvent; //Schreibe lieber: import javax.swing.event.*; //Der Compiler zieht sich eh nur das raus, was er braucht. public class caret //Siehe Zeile 7 in meinem Code: Du hast folgendes vergessen: implements CaretListener { JLabel label = new JLabel(); JTextField textfeld = new JTextField(); public static void main(String args[]) { caret caretlistener = new caret(); caretlistener.example(); } public void example() { JFrame frame = new JFrame("Ich bin ein Frame ^^"); JPanel panel = new JPanel(); frame.setLocation(100, 100); frame.setSize(200, 80); frame.getContentPane().add(panel); panel.setLayout(new GridLayout(1, 2)); panel.add(textfeld); panel.add(label); // this fehlte textfeld.addCaretListener(this); //Hier liegt das Problem frame.setVisible(true); } public void caretUpdate(CaretEvent e) { label.setText(textfeld.getText()); } }
Kannst du mir sagen warum er mir dort ein Fehler anzeigt?
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
public class caret implements CaretListener{
JLabel label = new JLabel();
JTextField textfeld = new JTextField();
public static void main(String args[]) {
caret caretlistener = new caret();
caretlistener.example();
}
public void example() {
JFrame frame = new JFrame("Ich bin ein Frame ^^");
JPanel panel = new JPanel();
frame.setLocation(100, 100);
frame.setSize(200, 80);
frame.getContentPane().add(panel);
panel.setLayout(new GridLayout(1, 2));
panel.add(textfeld);
panel.add(label);
textfeld.addCaretListener(this);
frame.setVisible(true);
}
public void caretUpdate(CaretEvent e) {
label.setText(textfeld.getText());
}
}