MVC, Views aufrufen

Status
Nicht offen für weitere Antworten.

AndreasS

Aktives Mitglied
Hallo,

habe ein Problem mit dem Aufrufen meiner Views. Ich möchte eine Benutzeroberfläche erstellen mit 2 Panels, auf dem einen die Labels auf dem anderen Panel die Textfelder. Irgendwie schaff ich das nicht!
Hier mal der Code:
Code:
//file: SteuerMVC.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SteuerMVC {
	
	JPanel mainP; 
	JPanel labelP;
	JPanel textP;
	
	//TaxModel
	SteuerModel smodel;
	
	//TaxTextView
	SteuerTextView textView;
	
	//TaxLabelView
	SteuerLabelView labelView;
	 // Constructor 
    public SteuerMVC() { 
        // Create containers
        mainP = new JPanel(); 
        labelP = new JPanel();
        textP = new JPanel();

        //Layout GridLayout
        mainP.setLayout(new GridLayout(0,2));

        //Add the panels/label/button to the container 
		mainP.add(labelP);
		mainP.add(textP);
        
        labelP.setLayout(null);
		textP.setLayout(null);
		
		smodel = new SteuerModel();
		labelView = new SteuerLabelView(smodel,labelP);
		textView = new SteuerTextView(smodel,textP);

		'hab ich mal eingefügt, wegen der 2 panels
		labelP.setBackground(Color.blue);
		textP.setBackground(Color.white);
	}
	public static void main(String[] args) { 
        // Create a frame as main application window 
        // with the specified title 
        JFrame mainF = new JFrame("Steuerberechnung"); 
        
        // Make the application exit when the window is closed. 
        mainF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // Set width and height of the main window 
        mainF.setLocation(100, 100); 
        mainF.setSize(550, 550);//pass the width and height 

        // Create a MouseDrag object 
        SteuerMVC steuer = new SteuerMVC(); 
		
        // Add the main panel to the frame's content pane 
        mainF.getContentPane().add(steuer.mainP);
        mainF.setVisible(true); 
    } 
}


//file: SteuerLabelView.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SteuerLabelView {
	//view data
	//textfields for showing data
	private JLabel showAnlageLB;
	private JLabel showDauerLB;
	private JLabel showZinssatzLB;
	
	JPanel mainP;
	//reference to corresponding model
	SteuerModel smodel;
	
	//constructor
	public SteuerLabelView(SteuerModel s, Container labelP){
		//set reference to corresponding model
		//smodel = s;
		JPanel mainP = new JPanel();
		//create textfields showing the model value
		showAnlageLB = new JLabel("Betrag in €:");
		showDauerLB = new JLabel("Dauer:");
		showZinssatzLB = new JLabel("Zinssatz:");
		
		//add the textfields to the parents
		mainP.add(showAnlageLB);
		mainP.add(showDauerLB);
		mainP.add(showZinssatzLB);
	}
	
	//main method
	public static void main(String[] args) {
		//create a frame as the main window
	}		
}
Habe nur mal die 2 Klassen eingefügt. Die fürs Hauptprogramm und die für den LabelView. Also eine View-Klasse.
Irgendwie muss ich ja die Views an das Hauptprogramm übergeben.

Vielleicht kann mir ja einer von Euch helfen!
Bin für jede Hilfe dankbar.

Gruß Andi :(
 
B

Beni

Gast
Ich versteh dein Problem nicht ganz.
Siehst du keine Labels? Das könnte daran liegen:

Code:
// 0 ist nicht gut
// mainP.setLayout(new GridLayout(0,2));  

// 1 ist besser
mainP.setLayout(new GridLayout(1,2));
 

AndreasS

Aktives Mitglied
Hi,

danke erstmal, dass du mir helfen willst. Mein problem ist folgendes: Ich kann meine Views irgendwie nicht in meinem Hauptprogramm (SteuerMVC) aufrufen. In SteuerMVC habe ich zwei Panels dafür erstellt. Auf dem einen sind die Labels und auf dem anderen sollen die Textfelder dargestellt werden. Darunter noch 2 Buttons.
So sollte es aussehen:

Code:
    |--------------------------------------------------|
    |                                |                                
    |                                |                                
    |  Label                       |   Textfield                
    |                                |                                
    |                                |                                
    |  Label                       |   Textfield                
    |                                |                                
    |                                |                                
    |  Label                       |   Textfield                
    |                                |                                
    |                                |                                
    |----------------------------------------------------|
    |                                                                 
    |    Button                        Button                   
    |                                                                 
    -----------------------------------------------------|

Da die Labels/Textfelder ja als private in den Views deklariert sind, schaff ich es leider nicht, sie in SteuerMVC aufzurufen.

Vielleicht kannst du mir ja nochmals helfen? Oder gibts eventuell irgendwelche Beispiele im Internet? Habe leider nichts gefunden und weiß nicht mehr weiter...

Gruß Andi
 
B

Beni

Gast
Ach so.

Du könntest Getter und Setter schreiben, das sieht dann so aus:

Code:
public class TextView{
  private JTextField field;

  public void setText( String text ){
    field.setText( text );
  }
  public String getText(){
    return field.getText();
  }

  public JTextField getTextField(){
    return field;
  }
}

Code:
// die Methode ist irgendwo im Code versteckt
public void blupp(){
  TextView view = ...
  view.setText( "Hallo du da" );  // setzt den Text des Textfeldes.
}

Wobei der letzte Getter das Textfeld zurückgibt. (Das ist eigentlich nicht so gut, andere Klassen könnten da Dinge umstellen, die nicht sein sollten. Auch ist das schon fast ein bisschen zu starr: wenn du mal etwas anderes als ein Textfeld benutzen möchtest, kommt es bei dem letzten Getter zu Problemen. Also versuch wann immer möglich die obere Variante zu benutzen).
 

AndreasS

Aktives Mitglied
Hi,

leider wars das nicht ganz. Ich möchte lediglich die Views in SteuerMVC aufrufen. Ich denke ich muss über den Constructor in SteuerMVC die Views aufrufen, mit den Parametern aus LableView bzw. TextView.
In SteuerMVC habe ich die Panels auf denen ich die Views darstellen will. D.h. in labelPanel sollen die Labels aus LabelView dargestellt werden und auf textPanel die aus der TextView.

Vielleicht hilfst du mir nochmals? Habe immer ein bischen Probleme, mein Problem in Worte zu fassen...

Gruß Andi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
J JavaFX - mehrere Views, Model durchreichen AWT, Swing, JavaFX & SWT 10
T Views bedingt öffnen oder schließen AWT, Swing, JavaFX & SWT 6
G "Views-Abwechseln-Pro " in RCP-Anwendung AWT, Swing, JavaFX & SWT 2
E Mehrere Views in einer View AWT, Swing, JavaFX & SWT 3
P SWT views AWT, Swing, JavaFX & SWT 7
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
I Zweite Scene aufrufen AWT, Swing, JavaFX & SWT 4
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
E Swing Dialog modal aufrufen AWT, Swing, JavaFX & SWT 2
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
K über Button andere Java Klasse aufrufen AWT, Swing, JavaFX & SWT 15
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
T Swing Methode in Listener aufrufen AWT, Swing, JavaFX & SWT 3
M JavaFX Methode nach initialize() aufrufen AWT, Swing, JavaFX & SWT 6
A paint-Methode aufrufen AWT, Swing, JavaFX & SWT 13
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
B Swing GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 4
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
M Swing JtextField Panel in ander Panel aufrufen AWT, Swing, JavaFX & SWT 0
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
K JavaFX Fenster aufrufen über Menü AWT, Swing, JavaFX & SWT 1
G Fragment aufrufen AWT, Swing, JavaFX & SWT 1
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
M Repaint mittels Button richtig aufrufen klappt nicht AWT, Swing, JavaFX & SWT 1
H JavaFx - Als exe aufrufen AWT, Swing, JavaFX & SWT 4
vodkaz Graphics aufrufen AWT, Swing, JavaFX & SWT 4
M Gui in einer anderen Java Klasse aufrufen AWT, Swing, JavaFX & SWT 1
I Paint-Methode von nicht statischen Objekten aufrufen AWT, Swing, JavaFX & SWT 3
S Swing Mit einem Link eine Methode aufrufen AWT, Swing, JavaFX & SWT 2
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
D Nächste GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 7
J Swing Nach SwingWorker Funktion aus der GUI Klasse aufrufen AWT, Swing, JavaFX & SWT 5
G JPanel aufrufen in andere Klasse AWT, Swing, JavaFX & SWT 2
G Window aus anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 4
W Funktion per Tastendruck aufrufen. AWT, Swing, JavaFX & SWT 10
A Applet Applet vom Web-Server aus aufrufen AWT, Swing, JavaFX & SWT 11
Jackii 2 Frames nacheinander aufrufen AWT, Swing, JavaFX & SWT 6
J Swing JTable - nach Sortieren andere Methode aufrufen AWT, Swing, JavaFX & SWT 2
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
A Applet main class aus anderer main class aufrufen AWT, Swing, JavaFX & SWT 15
N Button on click eine andere Klasse aufrufen... AWT, Swing, JavaFX & SWT 2
C Grafik von main aus aufrufen AWT, Swing, JavaFX & SWT 13
J SWT Globale Refresh-Aktion programmtechnisch aufrufen AWT, Swing, JavaFX & SWT 6
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
R paintComponent direkt bei actionPerformed aufrufen AWT, Swing, JavaFX & SWT 2
3 JFrame in Klassen aufrufen AWT, Swing, JavaFX & SWT 2
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
H applet Methode aus abstrakter Klasse aufrufen AWT, Swing, JavaFX & SWT 12
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
Weiti JOptionPane aus einer von JPanel abgeleiteten Klasse aufrufen AWT, Swing, JavaFX & SWT 3
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
L AWT Paint(g) im Listener aufrufen AWT, Swing, JavaFX & SWT 2
M Swing Methode in einem Fenster aus einem anderen Fenster aufrufen AWT, Swing, JavaFX & SWT 4
X Prozess mit Runtime.getRuntime in SwingWorker aufrufen AWT, Swing, JavaFX & SWT 6
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
N AWT Graphics2D mehrmals aufrufen AWT, Swing, JavaFX & SWT 5
M Main Frame schließen und neue Klasse aufrufen? AWT, Swing, JavaFX & SWT 2
I AWT paint() in MouseEvent aufrufen klappt nicht AWT, Swing, JavaFX & SWT 8
Q Swing Panel aus anderen Frame aufrufen AWT, Swing, JavaFX & SWT 2
A Aufrufen eigener Klasse AWT, Swing, JavaFX & SWT 8
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
C Einen JDialog aus einem JDialog aufrufen AWT, Swing, JavaFX & SWT 3
D Paint() Methode aus einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 6
M Button Methode aufrufen AWT, Swing, JavaFX & SWT 3
M Event händisch aufrufen AWT, Swing, JavaFX & SWT 2
S methode aufrufen beim Schließen von GUI AWT, Swing, JavaFX & SWT 7
K JDialog - Methode nach setVisible() aufrufen AWT, Swing, JavaFX & SWT 4
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
R Innerhalb der GUI Klasse meine neue Klasse aufrufen AWT, Swing, JavaFX & SWT 1
E Anfänger-JPanel aus Menü aufrufen AWT, Swing, JavaFX & SWT 4
G paint() Methode aus anderer klasse aufrufen? AWT, Swing, JavaFX & SWT 6
O Editor in JTable mit mouseMoved aufrufen? AWT, Swing, JavaFX & SWT 2
C WindowClosingAdapter JFrame manuell aufrufen AWT, Swing, JavaFX & SWT 6
J ActionListener via KeyListener aufrufen AWT, Swing, JavaFX & SWT 2
M super.paintComponent(g); aufrufen oder nicht? AWT, Swing, JavaFX & SWT 8
S Aufrufen von ActionListener AWT, Swing, JavaFX & SWT 5
H Modalen Dialog aus modalem Dialog aufrufen AWT, Swing, JavaFX & SWT 1
E Beim Schließen des Fensters eigene Funktion aufrufen AWT, Swing, JavaFX & SWT 8
R SWT: FileMenu-Eintrag soll Methode aufrufen AWT, Swing, JavaFX & SWT 2
J instanceof von einem Interface und aufrufen der Methoden AWT, Swing, JavaFX & SWT 5
M JMenuBar - JMenu mit Tastenkombination aufrufen / anzeigen AWT, Swing, JavaFX & SWT 8
L JOtionPane von Fachkonzeptklasse "aufrufen" AWT, Swing, JavaFX & SWT 2
S objekt kann methode der aufrufenden klasse nicht aufrufen AWT, Swing, JavaFX & SWT 2
G Compiler im Quellcode aufrufen? AWT, Swing, JavaFX & SWT 4
G Rechte Maustaste soll Menü aufrufen AWT, Swing, JavaFX & SWT 11
K JFrame modular aufrufen AWT, Swing, JavaFX & SWT 12
H Events manuell aufrufen AWT, Swing, JavaFX & SWT 4
S repaint bei canvas aufrufen AWT, Swing, JavaFX & SWT 7
J setSize von Panelklasse aufrufen AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben