# Netbeans und MVC



## Cheefrocker (22. Jun 2006)

Hallo zusammen!

Vielleicht nerven euch diese Art von Fragen schon gewaltig,hoffe aber ihr könnt mir trotzdem paar Tipps(Ratschläge geben).


Ist es möglich unter Netbean nach dem MVC-Prinzip zu programmieren und trotzdem gleichzeitig im Designmodus Anderungen vornehmen zu können ohne das alles nur in dem SourceCode zu machen????



  :cry:  :cry:  :cry:  :cry: 


Das muss doch irgentwie gehen??? Oder muss ich mich dann nur mit dem SourceCode zufrieden geben???!!


----------



## DP (22. Jun 2006)

mvc geht auch mit notepad. aber im netbeans hast du einen integrierten gui-designer, falls du das meinst.


----------



## AlArenal (22. Jun 2006)

Ja, ist möglich. Wo liegt das Problem?


----------



## Cheefrocker (22. Jun 2006)

ja das mein ich!  

Mir ist das schon klar das dort ein gui-designer vorhanden ist, aber wenn man an die GUI gebunden ist kann ich mvc abhacken??


----------



## Cheefrocker (22. Jun 2006)

@AlArenal geht es auch wenn ich die Gui im Design machen muss???

Hast du(ihr) schon Erfahrung damit gemacht?????


----------



## AlArenal (22. Jun 2006)

Cheefrocker hat gesagt.:
			
		

> Mir ist das schon klar das dort ein gui-designer vorhanden ist, aber wenn man an die GUI gebunden ist kann ich mvc abhacken??



Was meinst du mit "an die GUI gebunden" und warum sollte der Designer nicht mit MVC in Einklang zu bringen sein, wo du doch damit lediglich Views baust?


----------



## Cheefrocker (22. Jun 2006)

ich arbeite mit der Netbean IDE 5.0. Die Programme müssen schon im Designansicht geändert und angepasst werden können! 
Das Problem ist wie baue ich das MVC-Prinzip in den selbstgenerierten Code von Netbean ein? 

Hoffe ihr versteht mich


----------



## AlArenal (22. Jun 2006)

Ich verstehe dich, aber nicht wo das Problem liegen soll. Kannst du ein Beispiel bringen, anhand dessen du darstellst, wo du konkret Probleme hast?


----------



## Cheefrocker (22. Jun 2006)

Gibt es MVC-Beispiele die mit einer Guigemacht worden sind??

Weil alle Beispiele die ich bis jetzt gesehen habe sind nur auf den Source beschränkt! Sprich alles selbstgebaute Klassen ohne jegliche Designansicht.

Ach ich weiss auch nicht! Bin schon am verzweifeln...

Aber danke dir(euch) @AlArenal


----------



## AlArenal (22. Jun 2006)

Was du im GUI-Designer erzeugst ist ein GUI (logisch  ) und ein GUI ist ein View. Wo immer du auch Beispiele zu MVC gesehen hast, wird da auch ein View beigewesen sein müssen. Ob du diesen nun mit einem Designer, oder von Hand erstellt hast, ist Jacke wie Hose.

Auch der Designer erzeugt letztendlich bloß Sourcecode...


----------



## Cheefrocker (22. Jun 2006)

Ich probiers mal aus! 

Sobald ich eine Lösung oder Probleme habe werd ich ihn hierein posten! Könnte vielleicht für andere Noobs hilfreich sein!


----------



## André Uhres (22. Jun 2006)

Ich hab hier das Beispiel aus den FAQ mit NetBeans problemlos nachgebaut:

```
/*
 * WindViewer.java
 *
 * Created on 22 juin 2006, 11:34
 */

package test.view;

import java.util.*;
import test.control.WindControllable;
import test.model.Wind;

/**
 *
 * @author  André
 */
public class WindViewer extends javax.swing.JFrame implements Observer{
    
    /** Creates new form WindViewer */
    public WindViewer(WindControllable controller ) {
        this.controller = controller;
        initComponents();
        setVisible(true);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        mainPanel = new javax.swing.JPanel();
        direction = new javax.swing.JLabel();
        speed = new javax.swing.JLabel();
        buttonPanel = new javax.swing.JPanel();
        btDirection = new javax.swing.JButton();
        btSpeed = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        mainPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        direction.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        direction.setPreferredSize(new java.awt.Dimension(100, 25));
        mainPanel.add(direction);

        speed.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        speed.setPreferredSize(new java.awt.Dimension(100, 25));
        mainPanel.add(speed);

        getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);

        btDirection.setText("Change direction");
        btDirection.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btDirectionActionPerformed(evt);
            }
        });

        buttonPanel.add(btDirection);

        btSpeed.setText("Change Speed");
        btSpeed.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSpeedActionPerformed(evt);
            }
        });

        buttonPanel.add(btSpeed);

        getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-274)/2, (screenSize.height-117)/2, 274, 117);
    }// </editor-fold>                        
    
    private void btDirectionActionPerformed(java.awt.event.ActionEvent evt) {                                            
        controller.changeDirection();
    }                                           
    
    private void btSpeedActionPerformed(java.awt.event.ActionEvent evt) {                                        
        controller.changeSpeed();
    }                                       

    public void update(Observable o, Object arg) {
        Wind wind = ( Wind ) arg;
        direction.setText( wind.getDir().toString() );
        speed.setText( String.valueOf( wind.getSpeed() ) );
    }
    private WindControllable controller;
    // Variables declaration - do not modify                     
    private javax.swing.JButton btDirection;
    private javax.swing.JButton btSpeed;
    private javax.swing.JPanel buttonPanel;
    private javax.swing.JLabel direction;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JLabel speed;
    // End of variables declaration                   
    
}
```


----------



## Cheefrocker (22. Jun 2006)

Hey Andre vielen vielen dank! Das birngt mich schon mal weiter! Ich probiers direkt mal aus! 

danke nochmals


----------



## Cheefrocker (22. Jun 2006)

Noch eine Bitte @Andre!

Könntest du mir den Inhalt von :

test.control.WindControllable;
und vom
test.model.wind;

rüberschicken??


----------



## André Uhres (22. Jun 2006)

http://www.java-forum.org/de/viewtopic.php?p=52829#52829


----------



## Cheefrocker (26. Jun 2006)

Hallo!

Wie sieht es aber bei komplexeren Anwendungen aus? Fasse ich dann den Controller mit dem Modell zusammen?

Und wann benutz ich mehrere Modelle?

Habt ihr Beispiele aus der Praxis???


----------



## Cheefrocker (26. Jun 2006)

zur Info(falls es jemanden mehr hilf):

es wird viel vom Programm auf Datenbank zugegriffen, diese Datensätze abgespeichert(in Hashmaps).

Desweiteren werden einige Berechnungen erstellt und die Ergebnisse abgespeichert.

Die Ergebnisse werden nachher ausgewertet.

Danke im vorraus!


----------



## Cheefrocker (26. Jun 2006)

Wie setzt ihr das ganze immer um???

Hält ihr euch strikt an MVC oder benutzt ihr Mischformen? Wenn ja welche????


----------



## Cheefrocker (26. Jun 2006)

Keiner eine Idee??


----------

