Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist

nutellastulle

Mitglied
Hi Leute,

ich sitze schon seit Tagen an einem Problem und bin auf diese Seite gestoßen.
Ich programmiere mit Netbeans und muss eine Jlist bearbeiten. Die Klassenstruktur sieht folgendermaßen aus:

OperatingPanel <--> Facade <--> OwnTimer

ich habe das Jlist in OperatingPanel erzeugt, gebe es an Facade weiter und muss es in OwnTimer bearbeiten und zurückgeben. nun kann ich das Objekt zwar übergeben, aber die Liste wird nicht angezeigt.


Java:
public class OperatingPanel extends javax.swing.JFrame {

    public RobotDisplayModel mainMenu;
    public RobotDisplayModel startTimeMinute;
    public RobotDisplayModel startTimeHour;
    public RobotDisplayModel quickStart;
    public RobotDisplayModel cleanSettings;
    public RobotDisplayModel showEntry;
    public RobotDisplayModel deleteEntry;
    public RobotDisplayModel offModel;

public OperatingPanel() {
       
	 initComponents();


        mainMenu = new RobotDisplayModel("Hauptmenü", "Jetzt reinigen", "Reinigung hinzufügen", "Reinigungszeit anzeigen", "Reinigung löschen");
     
        startTimeHour = new RobotDisplayModel("Startzeit (Stunde)", "0 h", "1 h", "2 h", "3 h", "4 h", "5 h", "6 h", "7 h", "8 h", "9 h", "10 h", "11 h", "12 h", "13 h", "14 h", "15 h", "16 h", "17 h", "18 h", "19 h", "20 h", "21 h", "22 h", "23 h");

        startTimeMinute = new RobotDisplayModel("……");

        quickStart = new RobotDisplayModel("……");
        
        cleanSettings = new RobotDisplayModel("……");
        
        showEntry = new RobotDisplayModel("……");
        
        deleteEntry = new RobotDisplayModel("……");
        
        offModel = new RobotDisplayModel();
          
        listMenu.setModel(offModel); 
        
    }

private void rightButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
    
    Facade facade = new Facade();

    int index = listMenu.getSelectedIndex();

   if(!mainMenu.bool){
                 
      facade.getSelectedRightButton(index);  
       
       lastIndex = index;
    }

Java:
public class Facade {
    
    // Kompositionen
        public OwnTimer owntimer;
        public OperatingPanel operatingpanel; 
    
    public Facade(){
        this.owntimer = new OwnTimer();
        this.operatingpanel = new OperatingPanel();
    }
   
    public void getSelectedRightButton(int index){

         switch(index){
            case 1: owntimer.rightButtonSelection(operatingpanel.quickStart);
                    break;
            case 2: owntimer.rightButtonSelection(operatingpanel.startTimeHour);             
                    break;
            case 3: owntimer.rightButtonSelection(operatingpanel.showEntry);
                    break;
            case 4: owntimer.rightButtonSelection(operatingpanel.deleteEntry);                  
                    break;
            default: break;          
         
       }
    }
}


Java:
public class OwnTimer {


    public OwnTimer(){

    }
    
    public void rightButtonSelection(cleaningrobot.GUI.RobotDisplayModel a){
       
	Facade f = new Facade();
        
        f.operatingpanel.listMenu.setModel(a);
        f.operatingpanel.listMenu.setSelectedIndex(1);
        f.operatingpanel.mainMenu.bool = true;
        a.bool = true;
        
        //keine Fehler, aber setModel() setzt das Objekt nicht!!!!
        
    }

}

was mache ich falsch??????;(
ich bedanke mich im voraus
 

Michael...

Top Contributor
was mache ich falsch??????;(
Weiss zwar nicht was das werden soll, aber die einzelnen Objekt "kennen" sich garnicht.
OperatingPanel erstellt sich bei jedem Buttonclick ein neues Facade Objekt.
Dem Facade Objekt ist das originäre OperatingPanel Objekt egal und erstellt sich ein neues, genauso wie sich das durch das Facade Objekt neu erstellte OwnTimer Objekt selbst wiederum bei Aufruf der
Code:
rightButtonSelection
wiederum ein neues Facade Objekt erstellt.
Also grob zusammengefasst ist die Architektur Schmarrn. ;-)
Was soll es denn werden. Wenn es einfach nur so sein soll, dass in einem OwnTimer Objekt auf die JList des OperationPanel zugreifen soll (was ich für eher fragwürdig halte) dann darf man nicht in jeder Klasse neue Objekte der anderen Klassen erzeugen, sondern muss Referenzen auf bestehende Objekte übergeben.
 

nutellastulle

Mitglied
Erstmal danke für die schnelle Antwort.
screenshot20111220at344.png


Das ist meine GUI.

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * DisplayJframe.java
 *
 * Created on 18.10.2011, 17:29:08
 */
package cleaningrobot.GUI;
import java.util.Timer;
import java.util.TimerTask;
import cleaningrobot.Facade.Facade;
/**
 *
 *
 */
public class OperatingPanel extends javax.swing.JFrame {
   //Objekterzeugung
   
   
    
    
    protected int k = 0;
    protected int lastIndex = 0;
    protected int secondLastIndex = 0;
    protected int thirdLastIndex = 0;
    protected int startTime = 0;
    protected int startMinute = 0;
    protected int count = 0;
    protected int count2 = 0;
    protected int temp = 0;
    protected int i = 0;
    
    protected Object mode;
    
    private int[] startZeit = new int [2];
    
    
    public RobotDisplayModel mainMenu;
    public RobotDisplayModel startTimeMinute;
    public RobotDisplayModel startTimeHour;
    public RobotDisplayModel quickStart;
    public RobotDisplayModel cleanSettings;
    public RobotDisplayModel showEntry;
    public RobotDisplayModel deleteEntry;
    public RobotDisplayModel offModel;
    
   
    /** Creates new form DisplayJframe */
    
    public OperatingPanel() {
        initComponents();


        mainMenu = new RobotDisplayModel("Hauptmenü", "Jetzt reinigen", "Reinigung hinzufügen", "Reinigungszeit anzeigen", "Reinigung löschen");
     
        startTimeHour = new RobotDisplayModel("Startzeit (Stunde)", "0 h", "1 h", "2 h", "3 h", "4 h", "5 h", "6 h", "7 h", "8 h", "9 h", "10 h", "11 h", "12 h", "13 h", "14 h", "15 h", "16 h", "17 h", "18 h", "19 h", "20 h", "21 h", "22 h", "23 h");

        startTimeMinute = new RobotDisplayModel("Startzeit (Minute)", "0 m", "10 m", "20 m", "30 m", "40 m", "50 m");

        quickStart = new RobotDisplayModel("Reinigungszeit", "10 m", "20 m", "30 m", "40 m", "50 m");
        
        cleanSettings = new RobotDisplayModel("Modus/Beleuchtung", "Eco Tag", "Eco Nacht", "Intensiv Tag", "Intensiv Nacht");
        
        showEntry = new RobotDisplayModel("Reinigungszeit anzeigen", "Keine Reinigungszeit vorhanden");
        
        deleteEntry = new RobotDisplayModel("Reinigungszeiten löschen", "Keine Reinigungszeit vorhanden");
        
        offModel = new RobotDisplayModel();
          
        listMenu.setModel(offModel); 
        
    }

    /** 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.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        upButton = new javax.swing.JButton();
        rightButton = new javax.swing.JButton();
        leftButton = new javax.swing.JButton();
        downButton = new javax.swing.JButton();
        okButton = new javax.swing.JButton();
        onOff_Button = new javax.swing.JToggleButton();
        scrollPane = new javax.swing.JScrollPane();
        listMenu = new javax.swing.JList();
        progressBar = new javax.swing.JProgressBar();
        emptyButton = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);
        addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(java.awt.event.ComponentEvent evt) {
                formComponentResized(evt);
            }
        });

        upButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cleaningrobot/Container/up-arrow-icon-md.png"))); // NOI18N
        upButton.setEnabled(false);
        upButton.setPreferredSize(new java.awt.Dimension(80, 40));
        upButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                upButtonActionPerformed(evt);
            }
        });

        rightButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cleaningrobot/Container/right-arrow-icon-md.png"))); // NOI18N
        rightButton.setEnabled(false);
        rightButton.setPreferredSize(new java.awt.Dimension(40, 40));
        rightButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rightButtonActionPerformed(evt);
            }
        });

        leftButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cleaningrobot/Container/left-arrow-icon-md.png"))); // NOI18N
        leftButton.setEnabled(false);
        leftButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                leftButtonActionPerformed(evt);
            }
        });

        downButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cleaningrobot/Container/down-arrow-icon-md.png"))); // NOI18N
        downButton.setEnabled(false);
        downButton.setPreferredSize(new java.awt.Dimension(40, 40));
        downButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                downButtonActionPerformed(evt);
            }
        });

        okButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cleaningrobot/Container/ok-icon-md.png"))); // NOI18N
        okButton.setEnabled(false);
        okButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                okButtonActionPerformed(evt);
            }
        });

        onOff_Button.setText("On/Off");
        onOff_Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                onOff_ButtonActionPerformed(evt);
            }
        });

        listMenu.setCellRenderer(new MenuListRenderer());
        listMenu.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        scrollPane.setViewportView(listMenu);

        emptyButton.setBackground(new java.awt.Color(204, 0, 51));
        emptyButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                emptyButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(emptyButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 41, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(progressBar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 221, Short.MAX_VALUE))
                    .add(scrollPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 266, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(layout.createSequentialGroup()
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                            .add(layout.createSequentialGroup()
                                .add(leftButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                                    .add(upButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                            .add(downButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(rightButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(21, Short.MAX_VALUE))
                    .add(layout.createSequentialGroup()
                        .add(onOff_Button, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 76, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(upButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(leftButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(rightButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                        .add(downButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(scrollPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 133, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(onOff_Button)
                    .add(progressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 40, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(layout.createSequentialGroup()
                        .add(4, 4, 4)
                        .add(emptyButton)))
                .add(10, 10, 10))
        );

        pack();
    }// </editor-fold>                        

private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    int index = listMenu.getSelectedIndex();

    if(startTimeHour.bool){
        if(cleanSettings.bool){
            startTime = secondLastIndex - 1;
            startMinute = (startMinute-1) * 10;
            mode = listMenu.getSelectedValue();
            if(startTime < 10 && startMinute != 0){
                showEntry = new RobotDisplayModel("Reinigungszeit anzeigen", "Startzeit: 0"+startTime+":"+startMinute+"h " +mode);          
                deleteEntry = new RobotDisplayModel("Reinigungszeit anzeigen", "Startzeit: 0"+startTime+":"+startMinute+"h " +mode);
            }
            if(startTime > 9 && startMinute == 0){
                showEntry = new RobotDisplayModel("Reinigungszeit anzeigen", "Startzeit: "+startTime+":0"+startMinute+"h " +mode);
                deleteEntry = new RobotDisplayModel("Reinigungszeit anzeigen", "Startzeit: "+startTime+":0"+startMinute+"h " +mode);
            }
            if(startTime < 10 && startMinute == 0){
                showEntry = new RobotDisplayModel("Reinigungszeit löschen", "Startzeit: 0"+startTime+":0"+startMinute+"h " +mode);
                deleteEntry = new RobotDisplayModel("Reinigungszeit löschen", "Startzeit: 0"+startTime+":0"+startMinute+"h " +mode);
            }
            if(startTime > 9 && startMinute != 0){
                showEntry = new RobotDisplayModel("Reinigungszeit löschen", "Startzeit: "+startTime+":"+startMinute+"h " +mode);
                deleteEntry = new RobotDisplayModel("Reinigungszeit löschen", "Startzeit: "+startTime+":"+startMinute+"h " +mode);
            }
                
            listMenu.setModel(mainMenu);
            listMenu.setSelectedIndex(1);
            startTimeMinute.bool = false;
            startTimeHour.bool = false;
            mainMenu.bool = false;
            cleanSettings.bool = false;
        }
        
        if(startTimeMinute.bool){
            listMenu.setModel(cleanSettings);
            listMenu.setSelectedIndex(1);
            cleanSettings.bool = true;
            startMinute = index;
            thirdLastIndex = index;
        }
    
        if(startTimeHour.bool && !startTimeMinute.bool){
            listMenu.setModel(startTimeMinute);
            listMenu.setSelectedIndex(1);
            secondLastIndex = index;
            startTimeMinute.bool = true;
            System.out.println(startTimeMinute);
        }
    }

    if(deleteEntry.bool){
        startTime = 0;
        startMinute = 0;
        deleteEntry.bool = false;
        startTimeMinute.bool = false;
        cleanSettings.bool = false;
        mainMenu.bool = false;
        listMenu.setModel(mainMenu);
        listMenu.setSelectedIndex(1);
        showEntry = new RobotDisplayModel("Reinigungszeit anzeigen", "Keine Reinigungszeit vorhanden");
        deleteEntry = new RobotDisplayModel("Reinigungszeiten löschen", "Keine Reinigungszeit vorhanden");
    }
    
    if(quickStart.bool){
        count = count + index*10;
        
        MyTimerTask counter = new MyTimerTask();
        
        for(int j = 0; j<index * 10; j++){
            listMenu.setModel(mainMenu);
            listMenu.setSelectedIndex(1);
            quickStart.bool = false;
            mainMenu.bool = false;
            MyTimerTask.timer();
            i++;
            progressBar.setStringPainted(true);
            progressBar.setValue(i);
            progressBar.paint(progressBar.getGraphics());
            if(i>99)
                break;
	}
        
        listMenu.setModel(mainMenu);
        listMenu.setSelectedIndex(1);
        quickStart.bool = false;
        mainMenu.bool = false;
    }
}                                        

private void onOff_ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             

    if(k==1){
        listMenu.setModel(offModel);
        upButton.setEnabled(false);
        downButton.setEnabled(false);
        leftButton.setEnabled(false);
        rightButton.setEnabled(false);
        okButton.setEnabled(false);
       
        k=0;
    }else{
        listMenu.setEnabled(true);
        listMenu.setModel(mainMenu);
        listMenu.setSelectedIndex(1);

        upButton.setEnabled(true);
        downButton.setEnabled(true);
        leftButton.setEnabled(true);
        rightButton.setEnabled(true);
        okButton.setEnabled(true);
        
        startTime = 0;
        startMinute = 0;
        deleteEntry.bool = false;
        startTimeMinute.bool = false;
        mainMenu.bool = false;
        k=1;
        
    }
 
}                                            

private void upButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    int index = listMenu.getSelectedIndex(); 
    int size = listMenu.getModel().getSize();
    
    if(index != 1){
        listMenu.setSelectedIndex(index-1);
        listMenu.ensureIndexIsVisible(index-1);
    }
    
    if(index == 1){
        listMenu.setSelectedIndex(size-1);
        listMenu.ensureIndexIsVisible(size-1);
    }
    
}                                        

private void leftButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
      
    if(mainMenu.bool){
        if(!startTimeMinute.bool){
            listMenu.setModel(mainMenu);
            listMenu.setSelectedIndex(lastIndex);
            startTimeHour.bool = false;
            mainMenu.bool = false;
        }
    
        if(startTimeMinute.bool && !cleanSettings.bool){
            listMenu.setModel(startTimeHour);
            listMenu.setSelectedIndex(secondLastIndex);
            startTimeMinute.bool = false;
        }
    
        if(cleanSettings.bool){
            listMenu.setModel(startTimeMinute);
            listMenu.setSelectedIndex(thirdLastIndex);
            cleanSettings.bool = false;
        }
        if(showEntry.bool){
            listMenu.setModel(mainMenu);
            listMenu.setSelectedIndex(lastIndex);
            showEntry.bool = false;
             mainMenu.bool = false;
        }
    }
}                                          

private void rightButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
    Facade facade = new Facade();

    int index = listMenu.getSelectedIndex();

   if(!mainMenu.bool){
                 
      facade.getSelectedRightButton(index);  
       
       lastIndex = index;
    }  
    
            
         
}                                           

private void downButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
    int index = listMenu.getSelectedIndex();
    int size = listMenu.getModel().getSize();
    
    if(index != size-1){
        listMenu.setSelectedIndex(index+1);
        listMenu.ensureIndexIsVisible(index+1);
    }
    
    if(index == size-1){
        listMenu.setSelectedIndex(1);
        listMenu.ensureIndexIsVisible(1);
    }
}                                          

    private void formComponentResized(java.awt.event.ComponentEvent evt) {                                      
        // TODO add your handling code here:
    }                                     

    private void emptyButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
        progressBar.setValue(0);
        System.out.println(mainMenu.getElementAt(2));
        i = 0;
    }                                           

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see [url=http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html]How to Set the Look and Feel (The Java™ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)[/url] 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(OperatingPanel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(OperatingPanel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(OperatingPanel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(OperatingPanel.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new OperatingPanel().setVisible(true);
                
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton downButton;
    public javax.swing.JButton emptyButton;
    private javax.swing.JButton leftButton;
    public javax.swing.JList listMenu;
    private javax.swing.JButton okButton;
    private javax.swing.JToggleButton onOff_Button;
    public javax.swing.JProgressBar progressBar;
    private javax.swing.JButton rightButton;
    private javax.swing.JScrollPane scrollPane;
    private javax.swing.JButton upButton;
    // End of variables declaration                   
}

Davor war der Code, der in OwnTimer steht hier in dieser Klasse und die Untermenüs wurden einwandfrei aufgerufen. Aber da mein Professor jetzt die Implementierung einer Fassade haben möchte muss die Klasse Facade bestehen bleiben.

nutellastulle
 

Michael...

Top Contributor
Inwieweit hier das Facade Pattern Sinn machen soll verstehe ich nicht aber grundsätzlich gilt immer noch, dass es nicht hilft in den jeweiligen Klassen einfach neue Objekte einer Klasse zu erzeugen. Hier müssen die Referencen bestehender Objekte weitergereicht werden. Heisst die Klassen Facade und OwnTimer benötigen Konstruktoren oder Methoden über die man die (Kopie der) Referenz an die jeweiligen Objekte übergeben kann.
 

nutellastulle

Mitglied
Inwieweit hier das Facade Pattern Sinn machen soll verstehe ich nicht aber grundsätzlich gilt immer noch, dass es nicht hilft in den jeweiligen Klassen einfach neue Objekte einer Klasse zu erzeugen. Hier müssen die Referencen bestehender Objekte weitergereicht werden. Heisst die Klassen Facade und OwnTimer benötigen Konstruktoren oder Methoden über die man die (Kopie der) Referenz an die jeweiligen Objekte übergeben kann.

Kannst du mir bitte nen kleines Beispiel geben? Wäre sehr nett vielleicht gleich auf das Projekt bezogen... Die Objekte würde ich in der Main.java erstellen.
 

Michael...

Top Contributor
Hier mal ein Bsp. zur Referenzübergabe per Konstruktor:
Java:
class Main {
    public Main() {
        B b = new B();
        A a = new A(b);
    }
}

class A {
    private B bObject;
    
    public A(B bObject) {
        this.bObject = bObject; // jetzt hat das Objekt von Typ A eine Referenz auf ein bestehendes Objekt vom Typ B
    }
}

class B {}
 

nutellastulle

Mitglied
Also ich hab das jetzt so verstanden....

Java:
class Main {
* * public main() {
		Facade f = new Facade ();

		OwnTimer owt = new OwnTimer(f);		
* * * *	 
	   	OperatingPanel op = new OperatingPanel(f);
* * }

}
*
class OperatingPanel {
* * private Facade f;
* * 
* * public A(Facade f) {
* * * * this.f = f;
* * }
}
*
class OwnTimer {
	private Facade f;
	
	public OwnTimer(Facade f){
	this.f = f;
	}

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Zugriff auf Objektvariablen vs. Übergabe Allgemeine Java-Themen 3
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Java Zugriff auf Netzwerklaufwerk Allgemeine Java-Themen 1
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
Tommy Nightmare HTTP Zugriff auf Internetseite im Loginbereich Allgemeine Java-Themen 5
H Zugriff auf PHP Allgemeine Java-Themen 4
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
O JNA Zugriff auf Funktion aus DLL Allgemeine Java-Themen 0
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
M Kein Zugriff auf microSD Karten Allgemeine Java-Themen 4
T Zugriff auf Datenbank Allgemeine Java-Themen 1
J Zugriff auf IMAP GMail Konto scheitert. Allgemeine Java-Themen 2
P Frontend- Zugriff auf WS- Backend Allgemeine Java-Themen 0
U Zugriff auf Datei sperren Allgemeine Java-Themen 5
N Best Practice Semi-Synchronized Zugriff Allgemeine Java-Themen 0
C Zugriff auf Event felder Allgemeine Java-Themen 0
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
F Zugriff Verweigert bei Kopieroperation? Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
S Dynamischer Zugriff Allgemeine Java-Themen 4
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
E Zugriff auf Dateien im Filesystem überwachen Allgemeine Java-Themen 5
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
V Zugriff auf den Objekterzeuger? Allgemeine Java-Themen 4
M Zugriff zweier Threads auf diesselbe Methode Allgemeine Java-Themen 16
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
B JApplet Zugriff auf Local Storage des Browser? Allgemeine Java-Themen 2
D Zugriff auf Array-Liste Allgemeine Java-Themen 19
M gleichzeitiger Zugriff auf eine Textdatei Allgemeine Java-Themen 6
D Eclipse Kein Zugriff auf Inhalt einer referenzierten .jar Allgemeine Java-Themen 5
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
J XML Element Zugriff Allgemeine Java-Themen 4
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
H Vererbung Abgeleitete Klassen und Zugriff Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
S Zugriff auf innere Klasse Allgemeine Java-Themen 3
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
J Zugriff auf Dateien auf einem shared Folder? Allgemeine Java-Themen 3
H Zugriff auf VBA in Java Allgemeine Java-Themen 2
Haave Audio Device Unavailable: Kein gleichzeitiger Zugriff auf Soundsystem möglich Allgemeine Java-Themen 7
G Letzter Zugriff auf Datei Allgemeine Java-Themen 5
C java.io.FileNotFoundException: (Zugriff verweigert) Allgemeine Java-Themen 14
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
C Webstart: Zugriff auf lokale Dateien? Allgemeine Java-Themen 2
X Zugriff auf ComboBoxen in Hauptklasse von zweiter Klasse aus Allgemeine Java-Themen 8
J Zugriff auf gemeinsame Funktionen Allgemeine Java-Themen 4
Airwolf89 Zugriff auf ArrayList<ArrayList> Allgemeine Java-Themen 3
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
T Zugriff zwischen Klassen für repaint Allgemeine Java-Themen 7
N Zugriff auf eine Referenzvar. Allgemeine Java-Themen 3
S Zugriff auf Klasse Allgemeine Java-Themen 4
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
E JNA:Zugriff auf Common-Block von Fortran bzw. Struct in C Allgemeine Java-Themen 2
T Zugriff auf Singleton verkürzen - Namespaces?? Allgemeine Java-Themen 20
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
S Zugriff auf einzelne Bildpunkte Allgemeine Java-Themen 3
D Referenzen weiterreichen vs. statischer Zugriff Allgemeine Java-Themen 3
V Zugriff auf Default-Package? Allgemeine Java-Themen 6
P RegeEx-Problem: Zugriff auf group Allgemeine Java-Themen 2
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
I Zugriff auf Daten Allgemeine Java-Themen 5
T Zugriff per Reflection o.ä. möglich? Allgemeine Java-Themen 18
D Zugriff auf Windows Dienste Allgemeine Java-Themen 7
G Zugriff auf Memberclasses einer geladenen Class-Datei Allgemeine Java-Themen 2
I Gleichzeitiger zugriff auf ein Long über Threads Allgemeine Java-Themen 2
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
J Kein Zugriff auf Klassen im Default Package Allgemeine Java-Themen 8
M Paralleler Zugriff auf statische Methode Allgemeine Java-Themen 5
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
M "Unzulässiger Zugriff auf einen Speicherbereich" Allgemeine Java-Themen 7
A Zugriff auf Parallelport nur über Eclipse nicht über .jar ! Allgemeine Java-Themen 12
G Zugriff auf ein sama share Allgemeine Java-Themen 8
J Java zugriff auf Exchange Server Allgemeine Java-Themen 10
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
L Zugriff auf Objekt das sich in einer Liste befindet Allgemeine Java-Themen 2
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7
J Zugriff auf Map in anderer Klasse Allgemeine Java-Themen 2
J Endlosschleife durch wechselseitigen Zugriff zweier Klassen? Allgemeine Java-Themen 2
F Zugriff auf lokalen Rechner wer weiss Rat ? Allgemeine Java-Themen 16
G Zugriff auf Dateien in jar-Datei Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben