Zwei Fenster

Paul15

Aktives Mitglied
Hallo
Ich hab jetzt schon seit zwei Tagen erfolgslos probiert zwei Windows zu erstellen. Hab zwar etliches gefunden aber nie das richtige

Java:
public class JFrame1 extends JFrame {

    private JPanel contentPane;


    /**
     * Launch the application.
     */

    
    public static void main(String[] args) {
        
        
        
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    
                    
                    JFrame1 frame = new JFrame1();
                    frame.setVisible(true);
                    
                    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    
    
    
    public JFrame1() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 1000, 750);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        JLabel Error = new JLabel();
        Error.setBounds(500,5,100,15);
        Error.setText("");
        contentPane.add(Error);
}
(Natürlich nur ein kleiner Auszug)

Ich habe eine 2D Arraylist erstellt die ich dann im zweiten Fenster per Tabelle ausgeben will.

LG Paul
 

camelCase90

Aktives Mitglied
Was genau ist jetzt die Frage?

Öffnet sich dein Fenster aus dem Quellcode? Wie hast Du vor ein zweites zu öffnen? Per Button-Klick aus dem ersten oder zeitgleich?

Ich hab deine Fragestellung nicht ganz verstanden.

Btw. erbt man nicht von JFrame, wenn man es nicht verändern bzw auch wirklich erweitern will.
 

Paul15

Aktives Mitglied
1. Ja es öffnet sich
2. Es soll immer nebenbei offen sein
3. Wie ersell ich ein zweites Fenster
4. Versteh ich nicht
 

camelCase90

Aktives Mitglied
2. bleibt es, wenn Du es nicht über setVisible(false); änderst
3. jenachdem in welchen Zusammenhang Du das zweite Fenster öffnen willst. Willst Du es direkt beim Programm-Start mit öffnen, dann musst Du die Main-Methode dementsprechend erweitern. (JFrame myFrame = new JFrame();...)
4. Man erbt nur von einer Klasse, wenn man vor hat die neue Kindsklasse im Gegensatz zu der Elternklasse auch wirklich zu erweitern.
 

camelCase90

Aktives Mitglied
In Java gibt es keine globale Variablen. Du meinst vermutlich das JPanel Attribut.

Du veränderst bzw. erweiterst aber keine Methoden oä., damit es sinnvoll wäre von der Klasse zu erben.
 

camelCase90

Aktives Mitglied
Du erstellst eine normale Klasse und in der Main-Methode erstellst Du ein neues JFrame-Objekt. Damit kannst Du dann auch alle Methoden aufrufen (die setVisible-Methode ua.)
 

Paul15

Aktives Mitglied
Wie ruf ich dann den JFrame auf früher hab ich das so gemacht:
Java:
EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    
                    
                    JFrame1 frame = new JFrame1();
                    frame.setVisible(true);
                    
                    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    
    
    
    public JFrame1() {

aber ich müsste es ja mit frame aufrufen oder??
 

camelCase90

Aktives Mitglied
Du musst einfach nur JFrame1 frame = new JFrame1; durch JFrame frame = new JFrame(); ersetzen. alle Methodenaufrufe innerhalb deines Konstrukters musst du dann in die Main-Methode verschieben und über deiner frame Variablen aufrufen.

frame.setDefaultCloseOperation(JFrame...) z.B.
 

Paul15

Aktives Mitglied
Java:
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.border.EmptyBorder;

import static java.lang.System.out;
import javax.swing.JDesktopPane;

public class JFrame1 extends JFrame {

    private JPanel contentPane;
    //private JTextField;
    //private JLabel;
    double a;

    /**
     * Launch the application.
     */
    
    int cheese = 0;
    int pommes=0;
    int salat=0;
    
    boolean[][] zähler1 = new boolean [3][5];
    
    //arrayList
    
    ArrayList<Boolean> zeile0 = new ArrayList<>();
    ArrayList<Boolean> zeile1 = new ArrayList<>();
    ArrayList<Boolean> zeile2 = new ArrayList<>();
    ArrayList<Boolean> zeile3 = new ArrayList<>();        
    ArrayList<Boolean> zeile4 = new ArrayList<>();
    ArrayList<Boolean> zeile5 = new ArrayList<>();
    ArrayList<Boolean> zeile6 = new ArrayList<>();
    ArrayList<Boolean> zeile7 = new ArrayList<>();
    ArrayList<Boolean> zeile8 = new ArrayList<>();
    ArrayList<Boolean> zeile9 = new ArrayList<>();
    
    
    public static void main(String[] args) {
        
        
        
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    
                    
                    JFrame frame = new JFrame();
                    frame.setVisible(true);
                    
                    JFrame frame2 = new JFrame();
                    frame2.setVisible(true);
                    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    
    
    
    public frame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 1000, 750);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        JLabel Error = new JLabel();
        Error.setBounds(500,5,100,15);
        Error.setText("");
        contentPane.add(Error);
        
        
        
        //Checkbox Cheeseburger
        
        JCheckBox bxCheese = new JCheckBox("Cheese",true);
        bxCheese.setBounds(110,5,80,15);
        contentPane.add(bxCheese); 
        
        JCheckBox bxBurger = new JCheckBox("Burger",true);
        bxBurger.setBounds(110,25,80,15);
        contentPane.add(bxBurger); 
        
        JCheckBox bxSalsa = new JCheckBox("Salsa",true);
        bxSalsa.setBounds(110,45,80,15);
        contentPane.add(bxSalsa); 
        
        JCheckBox bxOnion = new JCheckBox("Onion",true);
        bxOnion.setBounds(200,5,80,15);
        contentPane.add(bxOnion); 
        
        JCheckBox bxCucumber = new JCheckBox("Cucumber",true);
        bxCucumber.setBounds(200,25,100,15);
        contentPane.add(bxCucumber); 
        
        JCheckBox bxSauce = new JCheckBox("Sauce",true);
        bxSauce.setBounds(200,45,80,15);
        contentPane.add(bxSauce); 
        
        
        
        
        JLabel lblCheeseburger = new JLabel("Cheeseburger: "+cheese);
        lblCheeseburger.setBounds(500,10,150,100);
        contentPane.add(lblCheeseburger);
        
        JLabel lblSalat = new JLabel("Salat: "+salat);
        lblSalat.setBounds(500,20,200,100);
        contentPane.add(lblSalat);
        
        JLabel lblPommes = new JLabel("Pommes: "+pommes);
        lblPommes.setBounds(500,30,250,100);
        contentPane.add(lblPommes);
        
        JToggleButton erw1 = new JToggleButton("Erweitern");
        
        erw1.setBounds(500,500,100,100);
        contentPane.add(erw1);
        
    JButton btnPommes = new JButton ("Pommes");
    btnPommes.setBounds(5, 130, 100, 50);
    btnPommes.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e)
        {        }
    });
    contentPane.add(btnPommes);
   
    
    
    JButton btnSalat = new JButton ("Salat");
    btnSalat.setBounds(5, 70, 100, 50);
    btnSalat.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e)
        {        }
    });
    contentPane.add(btnSalat);
    
    
    
    JButton btnCheesburger = new JButton ("Cheeseburger");
    btnCheesburger.setBounds(5, 5, 100, 50);
    btnCheesburger.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e)
        {    cheese = cheese+1;
        
            /* in Array "zähler" einfügen
        
            zähler1[0][0] = bxCheese.isSelected();
            zähler1[0][1] = bxSalsa.isSelected();
            zähler1[0][2] = bxBurger.isSelected();
            zähler1[0][3] = bxOnion.isSelected();
            zähler1[0][4] = bxCucumber.isSelected();
            zähler1[0][5] = bxSauce.isSelected();
            */
            
            
            
            /*    Erklärung der Zeilen
             * zeile0 = Cheese
             * zeile1 = Salsa
             * zeile2 = Burger
             * zeile3 = Onion
             * zeile4 = Cucumber
             * zeile5 = Sauce
             */
        
            //in ArrayList "zeile"einfügen
            
            zeile0.add(bxCheese.isSelected());
            zeile1.add(bxSalsa.isSelected());
            zeile2.add(bxBurger.isSelected());
            zeile3.add(bxOnion.isSelected());
            zeile4.add(bxCucumber.isSelected());
            zeile5.add(bxSauce.isSelected());
            
            //Zurücksetzten
            
            bxCheese.setSelected(true);
            bxSalsa.setSelected(true);
            bxBurger.setSelected(true);
            bxOnion.setSelected(true);
            bxCucumber.setSelected(true);
            bxSauce.setSelected(true);
            bxBurger.setSelected(true);
        
        
        lblCheeseburger.setText("Cheeseburger: "+cheese);
        }
    });
    contentPane.add(btnCheesburger);
    
    
    }
}
 

camelCase90

Aktives Mitglied
Du hast mich anscheinend falsch verstanden.

Du nutzt den Variablen-Name deines JFrame-Objektes als Konstrukter, funktioniert nicht. Der Konstrukter muss so wie Klasse heißen.


Beispiel:

Java:
class MyView {

    public static void main(String[] args) {
         MyView view = new MyView();
         view.init();
    }

    public void init() {
        JFrame myFrame = new JFrame();
        myFrame.setTitle("Mein Fenster"); 
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         ....
         myFrame.setVisible(true);
    }
}

So in etwa könntest Du den Aufbau gestalten. Das ist natürlich nur ein Beispiel, welches Du an deinen Code anpassen musst.

Aber wenn ich mir deinen Code so anschaue, erkenne ich einige Fehler.
Zum Beispiel hast Du den Umgang mit der 2D-Arraylist auch nicht richtig verstanden...
 

Paul15

Aktives Mitglied
So ich habes geschaft.
Java:
public class Test {
    public static void main(String[] args) {

     JFrame meinFrame = new JFrame("Beispiel JFrame");       
     meinFrame.setSize(1000, 1000);
     meinFrame.setVisible(true);
     
    JPanel contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    meinFrame.setContentPane(contentPane);
    contentPane.setLayout(null);
     }
}

Aber für was ist jetzt
Java:
         MyView view [COLOR=#339933]=[/COLOR] [COLOR=#000000][B]new[/B][/COLOR] MyView[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

         view.[COLOR=#006633]init[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
 

camelCase90

Aktives Mitglied
Ich würde Dir, wie tffasse bereits geschrieben hat, dringend raten Dich erstmal mit den Grundlagen zu beschäftigen, denn Zeilen die Du nicht verstehst gehören dazu.
 

Paul15

Aktives Mitglied
Danke für deine Hilfe erstmal

Ich hab mir ein Buch gekauft um mal annfangen Java zu lernen um für die HTL vorbereitet zu sein.

Jetzt hab ich es aber eh geschaft :)
 

Paul15

Aktives Mitglied
Ich hab jetzt alles eingebaut doch auf einmal gingen die Variablen nicht mehr. Also hab ich sie in eine eigene Class ausgelagert. So funktioniert es! Aber meine Anzeige kommt nicht mehr höher als 1. Ich habe keine Ahnung warum

Hat wer eine Idee??
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
I Zwei Fenster nebeneinander anzeigen AWT, Swing, JavaFX & SWT 2
M Swing Warum öffnen sich beim Zeichnen mit Swing plötzlich zwei Fenster? AWT, Swing, JavaFX & SWT 5
A Eins von zwei offnen Fenster/Frames schließen AWT, Swing, JavaFX & SWT 2
P Zwei JPanel übereianderlegen AWT, Swing, JavaFX & SWT 14
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
raeuchertofu Input bei zwei jTextfields AWT, Swing, JavaFX & SWT 5
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
P Zwei JTables auf eine A4-Seite mit einstellbaren Rändern AWT, Swing, JavaFX & SWT 9
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
M Kommunikation zwischen zwei Stages AWT, Swing, JavaFX & SWT 0
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
L Wörter zwischen zwei Grenzen einlesen. AWT, Swing, JavaFX & SWT 13
T Java: Zwei abhängige JSlider machen nicht das, was sie sollen AWT, Swing, JavaFX & SWT 4
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
M Zwei JPanel übereinander nur vorderes "repainten" AWT, Swing, JavaFX & SWT 3
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
H Kombination von zwei Frames AWT, Swing, JavaFX & SWT 16
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
D Swing Kommunikation zwischen zwei GUI's AWT, Swing, JavaFX & SWT 2
S Zwei JTree, ein Model, bei Selection im ersten JTree soll der zweite die Inhlate anzeigen AWT, Swing, JavaFX & SWT 2
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
T CSS Rechtsbüdniges Label mit Zwei Zeilen AWT, Swing, JavaFX & SWT 7
P 2D-Grafik Bogen(Arc) zwischen zwei Punkten zeichnen AWT, Swing, JavaFX & SWT 2
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
V JavaFX Zwei Dinge in einer CellFactory erledigen AWT, Swing, JavaFX & SWT 8
B Vertikale Größenänderung zwischen zwei Widgets AWT, Swing, JavaFX & SWT 2
J zwei Paint methoden in einer Klasse AWT, Swing, JavaFX & SWT 3
C Zwei Ebenen in Graphics ? AWT, Swing, JavaFX & SWT 0
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
B Swing focusGained öffnet sich zwei mal AWT, Swing, JavaFX & SWT 3
C Bei Btn Klick zwei JPanels switchen AWT, Swing, JavaFX & SWT 14
A Swing zwei JComboBoxen miteinander vergleichen und anschließend Button umwandeln AWT, Swing, JavaFX & SWT 7
A Jtabbed ein Reiter mit zwei icons AWT, Swing, JavaFX & SWT 4
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
B Kommunikation zwischen zwei Fenstern und vorübergehende Speicherung der Eingaben AWT, Swing, JavaFX & SWT 4
B JApplet zwei Panels autobreite? AWT, Swing, JavaFX & SWT 2
T LayoutManager GridBagLayout - zwei jTable mit unterschiedlicher Höhe AWT, Swing, JavaFX & SWT 2
L Zeichnen in zwei Fenstern AWT, Swing, JavaFX & SWT 8
J JOptionPane mit zwei Buttons?! AWT, Swing, JavaFX & SWT 3
F Swing Ladebildschirm zwischen zwei SWING Frames AWT, Swing, JavaFX & SWT 11
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
Helgon Zwei jTables gleich Breit AWT, Swing, JavaFX & SWT 4
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
M Swing Zwei Jlists - selectedElement binden? AWT, Swing, JavaFX & SWT 7
K zwei TableModel AWT, Swing, JavaFX & SWT 9
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
F JPanel mit zwei Methoden her beschreiben. AWT, Swing, JavaFX & SWT 8
Y xormode bzw bild in zwei ebenen zeichnen AWT, Swing, JavaFX & SWT 4
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
G Wie erzeugt man zwei identische JPanel AWT, Swing, JavaFX & SWT 4
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
B LayoutManager Positionierung zwischen zwei Layoutkomponenten AWT, Swing, JavaFX & SWT 2
N Swing DnD zwischen zwei JTrees AWT, Swing, JavaFX & SWT 2
H Swing Zwei Fragen AWT, Swing, JavaFX & SWT 5
D Zwei String Attribute über eine Methode als Zeilen in einer Tabelle darstellen AWT, Swing, JavaFX & SWT 9
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
T Zwei Jtables eine JscrollPane AWT, Swing, JavaFX & SWT 3
L Zwei Anwendungen kommen sich in die Quere! AWT, Swing, JavaFX & SWT 4
M SWT DND zwischen zwei TreViewern in beide Richtungen AWT, Swing, JavaFX & SWT 10
S SWT Zwei Tabellen gleichzeitig Scrollen AWT, Swing, JavaFX & SWT 3
N zwei JComponente gleichzeitig auf JPanel hinzufügen AWT, Swing, JavaFX & SWT 22
N Ein Button für zwei Aktionen AWT, Swing, JavaFX & SWT 7
V Swing Auslösen von zwei Events hintereinander AWT, Swing, JavaFX & SWT 4
hdi SWT Zwei mal Shell öffnen = Exception AWT, Swing, JavaFX & SWT 6
algorismi Unterscheiden zwischen zwei JLists AWT, Swing, JavaFX & SWT 5
P GridBagLayout - zwei Spalten mit gleicher Größe AWT, Swing, JavaFX & SWT 11
H Ein Button - zwei Actions AWT, Swing, JavaFX & SWT 3
T Schieberegler mit zwei Schiebern AWT, Swing, JavaFX & SWT 2
M SWT SWT - Zwei Tabellen gleicher Größe AWT, Swing, JavaFX & SWT 5
S import von Klassen (zwei Panels eine Form) AWT, Swing, JavaFX & SWT 39
K Zwei Panels zentriert anordnen AWT, Swing, JavaFX & SWT 3
S Vereinen von zwei MenuBar AWT, Swing, JavaFX & SWT 3
P JList mit zwei Werten AWT, Swing, JavaFX & SWT 9
0 JMenuItem nicht in zwei JMenus möglich? AWT, Swing, JavaFX & SWT 2
G Variblenwert zwischen zwei Klassen übergeben AWT, Swing, JavaFX & SWT 3
B zwei JLabels überlappen lassen AWT, Swing, JavaFX & SWT 5
T Kommunikation zwischen Zwei GUI-Klassen AWT, Swing, JavaFX & SWT 2
O Zwei Listener auf Komponente, warten auf Beendigun? AWT, Swing, JavaFX & SWT 2
T Kommunikation zwischen zwei jFrames AWT, Swing, JavaFX & SWT 4
G Datenaustausch zwischen zwei JFrames AWT, Swing, JavaFX & SWT 3
K Zwei JFrames aneinanderdocken? AWT, Swing, JavaFX & SWT 5
S JTable zwei Text-Zeilen in einer Zelle AWT, Swing, JavaFX & SWT 2
hdi zeitgleiches fokusieren von zwei panels AWT, Swing, JavaFX & SWT 2
I JTable: "GLEICHZEITIG" zwei verschiedene TableMode AWT, Swing, JavaFX & SWT 2
R JDialog dispose() wird zwei mal aufgerufen AWT, Swing, JavaFX & SWT 2
T zwei panel und ein thread AWT, Swing, JavaFX & SWT 5
W Instanz eines Steuerelementes an zwei Stellen zeichnen AWT, Swing, JavaFX & SWT 3
M Zwei JMenuBars AWT, Swing, JavaFX & SWT 5
W JTree - aus zwei mach eins AWT, Swing, JavaFX & SWT 2
M Zwei Element auf ein Contentpane AWT, Swing, JavaFX & SWT 45

Ähnliche Java Themen

Neue Themen


Oben