Hilfe beim "Verknüpfen" von zwei Klasse

Hallo!
Wir versuchen ein Programm zu schreiben, welches eine von uns vorgegebene Berechnung durchführt. Leider sind wir aber absolute Neulinge. Wir haben auch unterschiedliche Klassen erstellt, welche durch Klicken auf unsere Buttons Zeichnungen aufrufen sollen. Leider funktioniert diese "Verknüpfung" nicht. Könnte uns da jemand helfen oder uns sagen was wir falsch machen? Wir arbeiten mit Eclipse.
Vielen Dank für eine Antwort!
 
Hey JavaNeuling122,

es wäre einfacher für alle, wenn du die Klasse posten würdest (mittels java Code-Tags) und wir schauen was du da falsch gemacht hast. Bis ich (wir) uns jetzt durch alle deine Klassen durch gearbeitet haben vergeht mir zu viel zeit^^.
Wenn du den Code deines "Mainfenster", wo dein Menu zur Auswahl der Berechnung ist, postest bin ich gerne bereit dir zu helfen 🙂

Gruß
Robert
 
Java:
package berechnung;
import java.awt.BorderLayout;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.UIManager;

import visualisierungen.GrundrissPanel;
import visualisierungen.Schnitt;

import javax.swing.JOptionPane; // Hinweisfenster

public class LaMaAnwendungsfenster extends JFrame implements ActionListener {

    public static void main(String[] args) throws Exception {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        new LaMaAnwendungsfenster().setVisible(true);

    }

    // booleans für Ansichten
    boolean SchnittGrundriss;
    boolean StatSystem;
    boolean Querkraft;
    boolean Moment;
    boolean Uebersicht;
    boolean gesamt;
    boolean Hilfe;

    private void setAnsichtFalse() {
        this.SchnittGrundriss     = false;
        this.StatSystem         = false;
        this.Querkraft             = false;
        this.Moment             = false;
        this.Uebersicht         = false;
        this.Hilfe                 = false;
    }

    // Variablen erzeugen fÜr
    // Panel für graphische Darstellung
    private JPanel ausgabeGraphischPanel         = new JPanel();

    // Panel für Eingabe der Daten (links/"west")
    private JPanel WestPanel                     = new JPanel(new BorderLayout());

    // Panel für Grunddaten (links oben)
    private JPanel WertePanel                     = new JPanel(new BorderLayout());
    private JPanel LaengePanel                     = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel BreitePanel                     = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel GeschosshoehePanel             = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel GeschossanzahlPanel             = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel DeckenstaerkePanel             = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel WandmaterialPanel             = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel EingabeWertePanel             = new JPanel(new GridLayout(6, 2));

    // Textfelder für Grunddaten (links oben)
    private LaMaGebaeude LaMa                     = new LaMaGebaeude();
    private JTextField LaengeTxt                 = new JTextField("20.50");
    private JTextField BreiteTxt                 = new JTextField("20.80");
    private JTextField GeschosshoeheTxt         = new JTextField("2.60");
    private JTextField GeschossanzahlTxt         = new JTextField("3");
    private JTextField DeckenstaerkeTxt         = new JTextField("0.16");
    private JTextField WandmaterialTxt             = new JTextField("18.0");

    // Panel für Geschwindigkeitsdruck (links mitte)
    private JPanel WindPanel                     = new JPanel(new BorderLayout());
    private JPanel WindrPanel                     = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel GeschwindigkeitsdruckPanel     = new JPanel(new FlowLayout(FlowLayout.LEFT));
    //private JPanel AnzahlwandxPanel             = new JPanel(new FlowLayout(FlowLayout.LEFT));
    //private JPanel AnzahlwandyPanel             = new JPanel(new FlowLayout(FlowLayout.LEFT));
    private JPanel EingabeWindPanel             = new JPanel(new GridLayout(2, 1));

    // Textfelder für Geschwindkeitsdruck(links mitte)
    private JTextField GeschwindigkeitsdruckTxt = new JTextField("0.65");
    private JTextField WindrTxt                 = new JTextField("0");

    // Tabelle für Wandscheiben (links unten)
    private JTable WandscheibenTable             = new JTable();
    private LaMaGebaeude wandscheibe;
    private WandscheibeToTableModelAdapter adapter;
    private JButton EinfuegeWandB                 = new JButton("Wand hinzufügen");
    private JButton EntfernenWandB                 = new JButton("Wand entfernen");
    private JPanel EingabeWandscheibenTable     = new JPanel(new GridLayout(2, 2));

    // Start+Hilfe+Beenden Button (unten/"south")
    private JButton StartB                         = new JButton("START");
    private JButton HilfeB                         = new JButton("HILFE");
    private JButton BeendenB                     = new JButton("BEENDEN");

    // Panel für Buttonreihe (mitte/"central")
    private JPanel ButtonPanel                     = new JPanel(new GridLayout(1, 5, 50, 0));
    private JPanel AuswahlPanel                 = new JPanel(new BorderLayout());
    private JButton SchnittGrundrissB             = new JButton("Schnitt/Grundriss");
    private JButton StatSystemB                 = new JButton("Statisches System");
    private JButton QuerkraftB                     = new JButton("Querkraft");
    private JButton MomentB                     = new JButton("Moment");
    private JButton UebersichtB                 = new JButton("Übersicht");

    // Panels Mitte
    private JPanel CenterPanel                     = new JPanel(new BorderLayout());

    // Panel Buttonleiste
    private JPanel SouthPanel                     = new JPanel(new FlowLayout(FlowLayout.CENTER));

    // Eingabemaske erzeugen
    public LaMaAnwendungsfenster() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Berechnung: Lastverteilung infolge Wind bei Massivbauten (Flachdächer)");
        setLayout(new BorderLayout(5, 5));
        int maxWidth     = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
        int width         = Math.min(1500, maxWidth);
        setSize(width, 875);
        setMinimumSize(new Dimension(width, 700));

        // Zuhören auf Events(Eingabe) der Buttons eingeschaltet
        this.StartB.addActionListener(this);
        this.HilfeB.addActionListener(this);
        this.BeendenB.addActionListener(this);
        this.SchnittGrundrissB.addActionListener(this);
        this.StatSystemB.addActionListener(this);
        this.QuerkraftB.addActionListener(this);
        this.MomentB.addActionListener(this);
        this.UebersichtB.addActionListener(this);

        // "Haupt-Panels" der Eingabemaske hinzufuegen + Ausrichtung
        add(createWestPanel(), BorderLayout.WEST);
        add(createSouthPanel(), BorderLayout.SOUTH);
        add(createCenterPanel(), BorderLayout.CENTER);
    }

    // Einzelne Bereiche des West-Panels (linker Bereich der Eingabemaske)
    // hinzufügen
    private JPanel createWestPanel() {
        WestPanel.add(createWertePanel(), BorderLayout.NORTH);             // Links oben
        WestPanel.add(createWindPanel(), BorderLayout.CENTER);             // Links mitte
        WestPanel.add(createWandscheibenTable(), BorderLayout.SOUTH);     // Links
                                                                        // unten
        return WestPanel;
    }

    // Einzelne Bereiche des Center-Panels (mittlerer Bereich der Eingabemaske)
    // hinzufügen
    private JPanel createCenterPanel() {
        CenterPanel.add(createAuswahlPanel(), BorderLayout.SOUTH);
        CenterPanel.add(createGraphischPanel(), BorderLayout.NORTH);
        CenterPanel.setSize(new Dimension(250, 200));
        return CenterPanel;
    }

    // Einzelne Buttons des South-Panels (unterer Bereich der Eingabemaske)
    // hinzufügen
    private JPanel createSouthPanel() {
        SouthPanel.add(this.StartB);
        SouthPanel.add(this.HilfeB);
        SouthPanel.add(this.BeendenB);
        return SouthPanel;
    }

    // Panels und Textfelder formatieren
    // Eingabe Grunddaten (links oben - West-Panel > North)

    private JPanel createWertePanel() {
        WertePanel.setSize(new Dimension(350, 550));

        // Länge
        LaengeTxt.setPreferredSize(new Dimension(60, 20)); // Eingabefeld
                                                            // erzeugen
        LaengePanel.add(this.LaengeTxt); // Eingabefeld hinzufügen
        LaengePanel.add(new JLabel("m", JLabel.LEFT)); // Label erzeugen und zu
                                                        // Eingabefeld
                                                        // hinzufügen
        EingabeWertePanel.add(new JLabel("Länge", JLabel.LEFT)); // Label
                                                                    // erzeugen
                                                                    // und
                                                                    // hinzufügen
        EingabeWertePanel.add(LaengePanel); // Eingabeld hinzufügen

        // Breite
        BreiteTxt.setPreferredSize(new Dimension(60, 20));
        BreitePanel.add(this.BreiteTxt);
        BreitePanel.add(new JLabel("m", JLabel.LEFT));
        EingabeWertePanel.add(new JLabel("Breite", JLabel.LEFT));
        EingabeWertePanel.add(BreitePanel);

        // Geschossanzahl
        GeschossanzahlTxt.setPreferredSize(new Dimension(60, 20));
        GeschossanzahlPanel.add(this.GeschossanzahlTxt);
        GeschossanzahlPanel.add(new JLabel("-", JLabel.LEFT));
        EingabeWertePanel.add(new JLabel("Geschossanzahl     ", JLabel.LEFT));
        EingabeWertePanel.add(GeschossanzahlPanel);

        // Geschosshoehe
        GeschosshoeheTxt.setPreferredSize(new Dimension(60, 20));
        GeschosshoehePanel.add(this.GeschosshoeheTxt);
        GeschosshoehePanel.add(new JLabel("m", JLabel.LEFT));
        EingabeWertePanel.add(new JLabel("Geschosshöhe", JLabel.LEFT));
        EingabeWertePanel.add(GeschosshoehePanel);

        // Deckenstaerke
        DeckenstaerkeTxt.setPreferredSize(new Dimension(60, 20));
        DeckenstaerkePanel.add(this.DeckenstaerkeTxt);
        DeckenstaerkePanel.add(new JLabel("m", JLabel.LEFT));
        EingabeWertePanel.add(new JLabel("Deckenstärke", JLabel.LEFT));
        EingabeWertePanel.add(DeckenstaerkePanel);

        // Wandmaterial
        WandmaterialTxt.setPreferredSize(new Dimension(60, 20));
        WandmaterialPanel.add(this.WandmaterialTxt);
        WandmaterialPanel.add(new JLabel("kN/m³", JLabel.LEFT));
        EingabeWertePanel.add(new JLabel("Wandmaterial", JLabel.LEFT));
        EingabeWertePanel.add(WandmaterialPanel);

        // Rahmen um Eingabefelde Grunddaten
        WertePanel.setBorder(BorderFactory.createTitledBorder("Eingabe: Grunddaten des Gebäudes"));
        WertePanel.add(EingabeWertePanel, BorderLayout.WEST);
        return WertePanel;
    }

    // Eingabe Windlastzone (links mitte - West-Panel > Center)
    private JPanel createWindPanel() {
        WindPanel.setPreferredSize(new Dimension(350, 300));

        // Windrichtung
        WindrTxt.setPreferredSize(new Dimension(60, 20));
        WindrPanel.add(this.WindrTxt);
        WindrPanel.add(new JLabel("x=o; y=1", JLabel.LEFT));
        EingabeWindPanel.add(new JLabel("Windrichtung", JLabel.LEFT));
        EingabeWindPanel.add(WindrPanel);

        // Geschwindigkeitsdruck
        GeschwindigkeitsdruckTxt.setPreferredSize(new Dimension(60, 20));
        GeschwindigkeitsdruckPanel.add(this.GeschwindigkeitsdruckTxt);
        GeschwindigkeitsdruckPanel.add(new JLabel("kN/m²", JLabel.LEFT));
        EingabeWindPanel.add(new JLabel("Geschwindigkeitsdruck     ", JLabel.LEFT));
        EingabeWindPanel.add(GeschwindigkeitsdruckPanel);

        // Rahmen um Eingabefelder Wind
        WindPanel.setBorder(BorderFactory.createTitledBorder("Eingabe: Windlasten"));
        WindPanel.add(EingabeWindPanel, BorderLayout.WEST);
        return WindPanel;
    }

    // Eingabe Wandscheiben (links unten - West-Panel > South)
    private JPanel createWandscheibenTable() {
        JPanel WanscheibeTab = new JPanel(new BorderLayout());
        WanscheibeTab.setPreferredSize(new Dimension(350, 500));

        this.wandscheibe = new LaMaGebaeude();
       
        this.wandscheibe.setlae(Double.parseDouble(LaengeTxt.getText()));
        this.wandscheibe.setbre(Double.parseDouble(BreiteTxt.getText()));;
       
       
        wandscheibe.setGeschossAnzahl(Integer.parseInt(GeschossanzahlTxt.getText()));
       
        this.ausgabeGraphischPanel.add(new GrundrissPanel(wandscheibe,wandscheibe.getBreite(),wandscheibe.getLaenge()),BorderLayout.LINE_START);
        this.ausgabeGraphischPanel.add(new Schnitt(wandscheibe),BorderLayout.LINE_END);
       
        this.adapter = new WandscheibeToTableModelAdapter(this.wandscheibe);
        this.WandscheibenTable = new JTable(this.adapter);

        this.EntfernenWandB.addActionListener(this);
        this.EinfuegeWandB.addActionListener(this);

        WanscheibeTab.add(new JScrollPane(this.WandscheibenTable), BorderLayout.CENTER);

        JPanel t1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        t1.add(this.EinfuegeWandB);
        t1.add(this.EntfernenWandB);
        WanscheibeTab.add(t1, BorderLayout.SOUTH);

        // Rahmen um Eingabefelder Wind
        WanscheibeTab.setBorder(BorderFactory.createTitledBorder("Eingabe: Wandscheiben"));
        WanscheibeTab.add(EingabeWandscheibenTable, BorderLayout.WEST);

        return WanscheibeTab;
    }

    // Graphische Darstellung (mitte oben > Center-Panel > North)
    private JPanel createGraphischPanel() {
        //ausgabeGraphischPanel.setPreferredSize(new Dimension(10, 780));
        this.ausgabeGraphischPanel.setLayout(new BorderLayout());
        this.ausgabeGraphischPanel.add(new JLabel("Graphische Darstellung", JLabel.CENTER));
        this.ausgabeGraphischPanel.setBorder(BorderFactory.createTitledBorder("Graphisch"));
        this.ausgabeGraphischPanel.add(new GrundrissPanel(wandscheibe));
       
        return ausgabeGraphischPanel;
    }

    // Buttonleiste (mitte unten > Center-Panel > South)
    private JPanel createAuswahlPanel() {
        // Einzelne Buttons in Center-Panel > South hinzufügen
        ButtonPanel.add(this.SchnittGrundrissB);
        ButtonPanel.add(this.StatSystemB);
        ButtonPanel.add(this.QuerkraftB);
        ButtonPanel.add(this.MomentB);
        ButtonPanel.add(this.UebersichtB);

        // Anordnung
        AuswahlPanel.setBorder(BorderFactory.createTitledBorder("Gaphische Ausgabeoptionen"));
        AuswahlPanel.add(ButtonPanel, BorderLayout.CENTER);

        return AuswahlPanel;
    }

    // Start Ausgabe
    private void setfalsch() {
        this.SchnittGrundrissB.setSelected(false);
        this.StatSystemB.setSelected(false);
        this.QuerkraftB.setSelected(false);
        this.MomentB.setSelected(false);
        this.UebersichtB.setSelected(false);
    }

    // Buttons funktionen zuweisen
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == this.BeendenB) {
           
            /*
             * Aktion beim drueken des Buttons:
             *
             * BEENDEN
             *
             */
            JOptionPane.showMessageDialog(null, "BeendenB", "Button", JOptionPane.INFORMATION_MESSAGE);         // TODO nur zur Hilfe, später löschen
            System.exit(0);
        } else if (e.getSource() == this.EinfuegeWandB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Wand hinzufügen
             *
             */
            JOptionPane.showMessageDialog(null, "EinfuegeWandB", "Button", JOptionPane.INFORMATION_MESSAGE);     // TODO nur zur Hilfe, später löschen
            this.adapter.EinfuegeWand(0, 0, 0, 0, 0);
        } else if (e.getSource() == this.EntfernenWandB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Wand entfernen
             *
             */
            JOptionPane.showMessageDialog(null, "EntfernenWandB", "Button", JOptionPane.INFORMATION_MESSAGE);     // TODO nur zur Hilfe, später löschen
            this.adapter.EntferneWand(this.WandscheibenTable.getSelectedRow());
            /*
             * } else if (e.getSource() == this.HilfeB){
             * JOptionPane.showMessageDialog(null, "HilfeB", "Button",
             * JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später
             * löschen this.Hilfe.HilfeFenster(); this.HilfeB.setSelected(true);
             * this.setAnsichtFalse(); this.HilfeB = true;
             */
        } else if (e.getSource() == this.StartB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * START
             *
             */
            JOptionPane.showMessageDialog(null, "StartB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur  zur Hilfe, später löschen
       
            this.ausgabeGraphischPanel.revalidate();
        //    this.ausgabeGraphischPanel.add(new GrundrissPanel(wandscheibe,wandscheibe.getBreite(),wandscheibe.getLaenge()),BorderLayout.LINE_START);
            //this.ausgabeGraphischPanel.add(new Schnitt(wandscheibe),BorderLayout.LINE_END);
        //    ausgabeGraphischPanel.repaint();
           
            this.LaMa.setlae(Double.parseDouble(this.LaengeTxt.getText()));
            this.LaMa.setbre(Double.parseDouble(this.BreiteTxt.getText()));
            this.LaMa.setgesh(Double.parseDouble(this.GeschosshoeheTxt.getText()));
            this.LaMa.setgesa(Integer.parseInt(this.GeschossanzahlTxt.getText()));
            this.LaMa.setdest(Double.parseDouble(this.DeckenstaerkeTxt.getText()));
            this.LaMa.setwandm(Double.parseDouble(this.WandmaterialTxt.getText()));
            this.LaMa.setgeschwindd(Double.parseDouble(this.GeschwindigkeitsdruckTxt.getText()));
            this.LaMa.setwindr(Double.parseDouble(this.WindrTxt.getText()));

            System.out.println("-=== Wandscheiben (LaMaAnwendungsfenster) ===-\n" + "Anzahl Waende: "
                    + this.adapter.getRowCount() + "\nAnzahl Waende: " + wandscheibe.countWandkoordinaten()
                    + "\nWert 1 der 1. Wand: " + this.adapter.getValueAt(0, 0) + "\nArray mit allen Waenden: "
                    + WandscheibenTable.getComponents() + "\n-===-");

            // System.out.println(Arrays.asList(WandscheibenTable.getComponents()));

            // Arrays für tabellarische Eingabe Wandscheiben

            double[] xkoA = new double[this.adapter.getRowCount()];
            double[] ykoA = new double[this.adapter.getRowCount()];
            double[] wanddA = new double[this.adapter.getRowCount()];
            double[] richA = new double[this.adapter.getRowCount()];
            double[] laewA = new double[this.adapter.getRowCount()];

            // Spalten fest/ Zeilen variabel

            for (int i = 0; i < this.adapter.getRowCount(); i++) {
                xkoA[i] = Double.parseDouble(this.adapter.getValueAt(i, 0).toString());
                ykoA[i] = Double.parseDouble(this.adapter.getValueAt(i, 1).toString());
                wanddA[i] = Double.parseDouble(this.adapter.getValueAt(i, 2).toString());
                laewA[i] = Double.parseDouble(this.adapter.getValueAt(i, 3).toString());
                richA[i] = Double.parseDouble(this.adapter.getValueAt(i, 4).toString());
            }
            this.LaMa.setWaende(this.adapter.getRowCount(), xkoA, ykoA, wanddA, laewA, richA);
            // TODO kann weg!
            System.out.println("-=== xkoA ===-");
            System.out.println(Arrays.toString(xkoA));
            System.out.println("-=== ykoA ===-");
            System.out.println(Arrays.toString(ykoA));
            System.out.println("-=== wanddA ===-");
            System.out.println(Arrays.toString(wanddA));
            System.out.println("-=== laewA ===-");
            System.out.println(Arrays.toString(laewA));
            System.out.println("-=== richA ===-");
            System.out.println(Arrays.toString(richA));

            this.LaMa.berechne();
            this.ausgabeGraphischPanel.removeAll();

        if (SchnittGrundriss) {
                this.SchnittGrundrissB.setSelected(true);
                this.ausgabeGraphischPanel.add(new GrundrissPanel(this.LaMa));
            } else if (Uebersicht) {
                this.UebersichtB.setSelected(true);
                this.ausgabeGraphischPanel.add(new Schnitt(this.LaMa));
            } else if (StatSystem) {
                this.StatSystemB.setSelected(true);
                this.ausgabeGraphischPanel.add(new LaMaDarstellungStatSystem(this.LaMa));
            } else if(Querkraft) {
                 this.QuerkraftB.setSelected(true);
                 this.ausgabeGraphischPanel.add(new LaMaDarstellungQuerkraft(this.LaMa));
            } else if (Moment) {
                this.MomentB.setSelected(true);
                this.ausgabeGraphischPanel.add(new LaMaDarstellungMoment(this.LaMa));
            } else if (Hilfe) {
                this.HilfeB.setSelected(true);
                this.ausgabeGraphischPanel.add(new HilfeFenster());
        //    } else  {
            //    this.ausgabeGraphischPanel.removeAll();
                //this.setfalsch();
            }
        }
        else {
            actionPerformed(new ActionEvent(this.StartB,
                    ActionEvent.ACTION_FIRST, ""));
           
            this.ausgabeGraphischPanel.removeAll();
           

            this.setfalsch();
       
        if (e.getSource() == this.SchnittGrundrissB || e.getSource() == this.SchnittGrundrissB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Schnitt/Grundriss
             *
             */
   
            JOptionPane.showMessageDialog(null, "SchnittGrundrissB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später löschen
            this.SchnittGrundrissB.setSelected(true);
            this.ausgabeGraphischPanel.add(new GrundrissPanel(this.LaMa));
            this.setAnsichtFalse();
            this.SchnittGrundriss = true;
        } else if (e.getSource() == this.StatSystemB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Statisches System
             *
             */
            JOptionPane.showMessageDialog(null, "StatSystemB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später löschen
            this.StatSystemB.setSelected(true);
            this.ausgabeGraphischPanel.add(new LaMaDarstellungStatSystem(this.LaMa));
            this.setAnsichtFalse();
            this.StatSystem = true;
        } else if (e.getSource() == this.QuerkraftB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Querkraft
             *
             */
            JOptionPane.showMessageDialog(null, "QuerkraftB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später löschen
            this.QuerkraftB.setSelected(true);
            this.ausgabeGraphischPanel.add(new LaMaDarstellungQuerkraft(this.LaMa));
            this.setAnsichtFalse();
            this.Querkraft = true;
        } else if (e.getSource() == this.MomentB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Moment
             *
             */
            JOptionPane.showMessageDialog(null, "MomentB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später löschen
            this.MomentB.setSelected(true);
            this.ausgabeGraphischPanel.add(new LaMaDarstellungMoment(this.LaMa));
            this.setAnsichtFalse();
            this.Moment = true;
        } else if (e.getSource() == this.UebersichtB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * Übersicht
             *
             */
            JOptionPane.showMessageDialog(null, "UebersichtB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später löschen
            this.UebersichtB.setSelected(true);
            //this.ausgabeGraphischPanel.add(new LaMaDarstellungUebersicht(this.LaMa));
            this.setAnsichtFalse();
            this.Uebersicht = true;
        } else if (e.getSource() == this.HilfeB) {
            /*
             * Aktion beim drueken des Buttons:
             *
             * HILFE
             *
             */
            JOptionPane.showMessageDialog(null, "HilfeB", "Button", JOptionPane.INFORMATION_MESSAGE); // TODO nur zur Hilfe, später löschen
            this.HilfeB.setSelected(true);
            HilfeFenster hilfefenster=new HilfeFenster();
            hilfefenster.show();
           
            this.setAnsichtFalse();
            this.Hilfe = true;
            this.ausgabeGraphischPanel.validate();
        }
        this.ausgabeGraphischPanel.validate();
    }
}
}
 
Und was genau funktioniert nicht? Geht er gar nicht erst in deine If-Verzweigung rein?
Zeigt er deine Dialog nicht an?
Oder was genau funktioniert nicht.

Genaue Angaben wären hilfreich 😉
 
Wenn man auf dem Button StartB klickt sollte die Berechnung durchlaufen. Das scheint auch zu funktionieren.
Und dann möchte ich z.B. das wenn man auf den Button QuerkraftB klickt, dass in dem "GraphischPanel" die in der Klasse LaMaDarstellungQuerkraft erstellte Zeichnung angezeigt wird. Wenn man auf dem Button MomentB soll die Zeichnung aus der Klasse LaMaDarstellungMoment angezigt werden usw.
Aber leider zeigt er irgendwie nichts an.
 
Also die Antwort meiner Seits wird wahrscheinlich erst morgen kommen, da es doch recht viel Code ist, in den man sich einarbeiten muss.
Dein Problem habe ich verstanden -nur noch eine Frage: bekommst du irgendeine Exception?
 
Nein, also soweit wir das erkennen können nicht. Es erscheint leider beim Klicken der Buttons QuerkraftB, MomentB, statSystB, etc. nur nochmal der Text des Buttons StartB, welchen wir zu Kontrolle eingegeben haben. Aber leider erschient nicht die Zeichung.
 
Wenn ich das richtig überflogen habe, machst du nach jedem add auf das Grafikpanel am Ende der If/Else Abfragen wieder ein removeAll(). Das würde klären warum nie was drin ist.

Es würde allerdings Sinn machen sich einmal mit dem Debugger von Eclipse auseinander zu setzen. für genau so etwas ist er schließlich da.

Gruß

Claus
 
Wenn ich das richtig überflogen habe, machst du nach jedem add auf das Grafikpanel am Ende der If/Else Abfragen wieder ein removeAll(). Das würde klären warum nie was drin ist.

Es würde allerdings Sinn machen sich einmal mit dem Debugger von Eclipse auseinander zu setzen. für genau so etwas ist er schließlich da.

Gruß

Claus

Mich würde auch mal interessieren, warum du removeAll() aufrufst.
 
Nein, also soweit wir das erkennen können nicht. Es erscheint leider beim Klicken der Buttons QuerkraftB, MomentB, statSystB, etc. nur nochmal der Text des Buttons StartB, welchen wir zu Kontrolle eingegeben haben. Aber leider erschient nicht die Zeichung.
Du rufst innerhalb der actionPerformed-Methode ein weiteres Mal actionPerformed() mit einem selbst erzeugten Ereignis auf. Warum du das tust kann ich bisher nicht nachvollziehen, aber es ist vermutlich die Ursache für das erneute Anzeigen von StartB.

Vielleicht hilft es, nach dem Hinzufügen von LaMaDarstellungQuerkraft einmal revalidate auf dem Anwendungsfenster aufzurufen.
 

Zurück
Oben