Problem mit JFrame und Panel (Schliessen eines JFrame)

Status
Nicht offen für weitere Antworten.
Y

Yourtime

Gast
Hallo ich habe ein problem ich muss in der schule ein programm schreiben und zwar ein Vokabeltrainer
und wir haben in letzter zeit gelernt dynamische Datenstrukturen

mein problem ist

ich habe ein klasse das öffnet ein frame und das einen panel ... ich möchte das mein panel auf den frame zu greifen kann

mir sind nicht viele möglichkeiten eingefallen...
so habe ich eine neue klasse (frame close) gemacht . diese klasse wird geöffnet vom JFRAME und das jframe gibt in die klasse (frame close ) das selbe frame. später öffnet das Panel --> frame close (NEW FRAME CLOSE) und startet die methode closeframe() und soll halt den FRAME schliessen den ich eingelesen haben

mein problem ist das ich nur den befehl kenne für einen new frame close und somit die eingelesen frame =null ist und somit kommt ein fehler

ich will aber beim panel --> das gleiche öffnen wie bei jframe

ich habe hier auch die codes:
Testklasse:

Code:
import javax.swing.*;
import java.awt.*; 
import java.awt.event.*; 
public class TestVokabelFrame
{
    public static void main(String[]args)
    {
        VokabelFrame frame= new VokabelFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.show(); 
    }
}


-------

Code:
import javax.swing.*;
import java.awt.*; 
import java.awt.event.*; 
public class VokabelFrame extends JFrame
{    
    public VokabelFrame()
    {
        setTitle("Vok Trainer Version 1.0"); 
        setSize(200,150); 
        setLocation(200,200);
        setVisible(true);
        VokabelPanel a= new VokabelPanel();
        getContentPane().add(a); 
       }
}


Code:
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class VokabelPanel extends JPanel
    {
        public JButton eingeben;
        public JButton bearbeiten;
        public JButton auflisten;
        public JButton training;
        public JPanel eingebenPanel;
        public JFrame vokabelFrame2;
        public buttonFrame b= new buttonFrame();
        public int[]var =new int[4];
        
    
    public VokabelPanel()
    {
        setLayout(new GridLayout(4,0));
        eingeben = new JButton("Daten Eingeben");
        bearbeiten  = new JButton("Daten Bearbeiten");
        auflisten  = new JButton("Daten auflisten");
        training  = new JButton("Vok Training");
        add(eingeben);
        add(bearbeiten);
        add(auflisten);
        add(training);
        Handling x= new Handling();
        eingeben.addActionListener(x);
        training.addActionListener(x);
        auflisten.addActionListener(x);
        bearbeiten.addActionListener(x);
    }
    public class Handling  implements ActionListener
    {
         public void actionPerformed(ActionEvent e)
        {    
            if(e.getSource()==eingeben && var[0]!=1)
            {               
                buttonFrame a = new buttonFrame();
                a.eingebenFrame();
                
                
               
            }
            if(e.getSource()==bearbeiten && var[1]!=1)
            {               
                buttonFrame b = new buttonFrame();
                b.bearbeitenFrame();
                
            }
            if(e.getSource()==auflisten && var[2]!=1)
            {               
                buttonFrame c = new buttonFrame();
                c.auflistenFrame();
                
                
            }
            if(e.getSource()==training && var[3]!=1)
            {               
                buttonFrame d = new buttonFrame();
                d.trainFrame();
              

              
                
            }
            
                
            }
            
        }
    }

-------

Code:
public class buttonFrame extends JFrame
{
    
    public buttonFrame()
    {
        setTitle("Vok Trainer Version 1.0"); 
        
    }
    public void eingebenFrame()
    {
        setSize(515,53); 
        setLocation(400,200);
        eingebenPanel a= new eingebenPanel();
        getContentPane().add(a); 
        setVisible(true);
        frameClose z = new  frameClose(this);
    }

--------

Code:
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class frameClose extends JFrame
{
    public int a;
    public JFrame ad;
    public frameClose(JFrame af)
    {
       ad = af;
    }
    public frameClose()
    {}
       public void closeFrame()
       {
           ad.setVisible(false);
       }
}

----

Code:
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class eingebenPanel extends JPanel
{
    public boolean klick;
    public JButton ok = new JButton("Ok");;
    public JTextField oben=new JTextField();
    public JTextField unten=new JTextField();
    public JLabel linkstext=new JLabel("Name");
    public JLabel rechtstext=new JLabel("Übersetzung");
    public eingebenPanel()
    {
        setLayout(null);
        linkstext.setBounds(0,0,50,25);
        oben.setBounds(50,0,150,25);
        rechtstext.setBounds(205,0,75,25);
        unten.setBounds(285,0,150,25);
        ok.setBounds(440,0,50,25);
        add(oben);
        add(ok);
        add(unten);
        add(oben);
        add(linkstext);
        add(rechtstext);
        Handling handle = new Handling();
        ok.addActionListener(handle);
        
}
  
 public class Handling  implements ActionListener
    {
         public void actionPerformed(ActionEvent e)
        {   
           if(e.getSource()==ok)
           {
            
               frameClose a = new frameClose();
               a.closeFrame();
            }
        }
    }
}




Ich hoffe ihr könnt mir helfen =/
 
Y

Yourtime

Gast
ich habe ein JPanel ja?

und das wird mit einem JFrame ja gestartet!

und ich habe auf meinem JPanel --> einem button (OK) und ich will wenn ich diesen button drücke das ich das FRAME nicht mehr sehe

also entweder schließe oder visible(false) mache

nur wie greife ich mit einem JPANEL auf die andere Klasse also JFRAME zu ? =/
 

Yourtime

Mitglied
So habe mich mal angemeldet und werde mal das so editieren das vll man es besser versteht
Code:
import javax.swing.*;
import java.awt.*; 
import java.awt.event.*; 
/**
/*import sachen
*/
public class TestVokabelFrame
{
    public static void main(String[]args)
    {
        VokabelFrame frame= new VokabelFrame(); // startet die Frame Klasse
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Close methode ( beim x)
        frame.show(); // is zwar bald depricated aber egal zum anzeigen des frames
    }
}


-------

Code:
import javax.swing.*;
import java.awt.*; 
import java.awt.event.*; 
/**
/*import sachen ^^
*/
public class VokabelFrame extends JFrame // Frame klasse
{    
    public VokabelFrame() // Konstruktor
    {
        setTitle("Vok Trainer Version 1.0");  // Title
        setSize(200,150); // Größe
        setLocation(200,200); // Wo 
        setVisible(true); // Frame wird angezeigt 
        VokabelPanel a= new VokabelPanel(); // HAUPTPANEL wird gestartet
        getContentPane().add(a);  // Content fügt den Panel hinzu
       }
}


Code:
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
/**
/* import dinger
*/
public class VokabelPanel extends JPanel
    {
        public JButton eingeben; // der erste button zum eingeben  Von Vokabeln
        public JButton bearbeiten; // 2. Button zum bearbeiten zum bearbeiten von vokabeln
        public JButton auflisten; // 3. Button zum Auflisten ALLER vokabeln
        public JButton training; // 4. Button für ein Training
        public buttonFrame b= new buttonFrame(); // 2. FRAME zum starten aller Panel in einer KLASSE

    public VokabelPanel() // Konstruktor
    {
        setLayout(new GridLayout(4,0)); // Layout des Panel
        eingeben = new JButton("Daten Eingeben"); 
        bearbeiten  = new JButton("Daten Bearbeiten");
        auflisten  = new JButton("Daten auflisten");
        training  = new JButton("Vok Training");
        // buttons werden angezeigt
        add(eingeben);
        add(bearbeiten);
        add(auflisten);
        add(training);
        Handling x= new Handling(); // ActionListener
        // buttons werden regestiert
        eingeben.addActionListener(x);
        training.addActionListener(x);
        auflisten.addActionListener(x);
        bearbeiten.addActionListener(x);
    }
    public class Handling  implements ActionListener
    {
         public void actionPerformed(ActionEvent e)
        {    
            if(e.getSource()==eingeben) // wenn man auf die var eingeben klickt soll buttonFrame gestartet werden
            {               
                buttonFrame a = new buttonFrame();
                a.eingebenFrame(); // führt den Frame EINGEBEN aus
            }
            
                
          }
            
        }
    }

-------

Code:
public class buttonFrame extends JFrame // KLASSEzum starten aller FRAMES und öffnen ALLER PANELS
{
    
    public buttonFrame() // Konstruktor
    {
        setTitle("Vok Trainer Version 1.0");  // Title
        
    }
    public void eingebenFrame()
    {
        setSize(515,53);  // Größe
        setLocation(400,200);// WO
        eingebenPanel a= new eingebenPanel(); // Starten des panels eingeben von frame eingeben
        getContentPane().add(a); // Content fügt  panel hinzu
        setVisible(true);// panel wird sichtbar
        frameClose z = new  frameClose(this); // Framclose bekommt diesen frame
    }

--------

Code:
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
//import dinger
public class frameClose extends JFrame
 // die klasse soll das jenige frame schliessen ... ich habe sie aus dem bauch geschrieben und deshalb so komische var namen
{
    public JFrame ad; // ein leerer frame wird erzeugt 
    public frameClose(JFrame af) // 1. konstruktor mit jframe als attribut
    {
       ad = af; // leerer  übernimmt neuen
    }
    public frameClose()//  2. konstruktor für die andere klasse (Panel)
    {}
       public void closeFrame()//  methode zum schliessen bzw zum unsichtbar machen
       {
           ad.setVisible(false); // befehl : unsichtbar
       }
}

----

Code:
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
// import jaja
public class eingebenPanel extends JPanel
{
    public JButton ok = new JButton("Ok");; // ok button zum speichern und schließen des frames
    public JTextField oben=new JTextField(); // eingabe feld für name
    public JTextField unten=new JTextField(); // eingabe feld für übersetzung
    public JLabel linkstext=new JLabel("Name"); // label für "name"
    public JLabel rechtstext=new JLabel("Übersetzung"); //label für Übersetung
    public eingebenPanel() // konstruktor
    {
        setLayout(null); // null layout für diesen Panel
        //setzen der daten
        linkstext.setBounds(0,0,50,25); 
        oben.setBounds(50,0,150,25);
        rechtstext.setBounds(205,0,75,25);
        unten.setBounds(285,0,150,25);
        ok.setBounds(440,0,50,25);
        // anzeigen der daten
        add(oben);
        add(ok);
        add(unten);
        add(oben);
        add(linkstext);
        add(rechtstext);
        Handling handle = new Handling();// actionListener
        //reg. der daten ( daweil nur ok wegen dem problem)
        ok.addActionListener(handle);
        
}
  
 public class Handling  implements ActionListener // ActionListener
    {
         public void actionPerformed(ActionEvent e)
        {   
           if(e.getSource()==ok) //  ob  ok gedrückt wird
           {
            
               frameClose a = new frameClose(); // Führ 1. Konstruktor aus um dann frame zu schliessen
               a.closeFrame(); // methode schließt bzw macht  frame unsichtbar
            }
        }
    }
}


also jetzt hoffe ich das das jeder versteht

das was ich gemacht habe ist eine lösung aber es hat einen hacken ..... er öffnet nicht die gleiche klasse(frameClose) sonder eine neue und somit ist der JFrame af leer(NULL) =/
 

Yourtime

Mitglied
kann mir echt keiner helfen ? =/ .... oder braucht ihr mehr infos oder kann ich was erkären was ihr nicht versteht >_<
 

Caffè Latte

Bekanntes Mitglied
Hi,

ich verstehe es irgendwie nicht. Und so viel Code will ich auch nicht lesen. ;)

Wenn ich in meinen Forms einen Menüeintrag, einen Button oder sonst was habe, um das Form zu schliessen, dann geht das immer mit "this.dispose();" - egal wo das Ding ist (in einem Menu, einem Panel etc.).

Wenn ich allerdings ein Form aus einem anderen Form schliessen möchte, dann bau ich auch eine Schliessenmethode ein, die wieder "this.dispose()" ausführt. Diese öffentliche Methode zum Schliessen des Form rufe ich dann mit "instanzname.methodenname()" auf.

Statt dispose geht natürlich auch setVisible() und was so ein Form eben sonst noch so hergibt.
 

Yourtime

Mitglied
ok ich werde es mal testen danke mal im vorraus =)

ehm eine frage ist

ich habe in einer anderen klasse a eine klasse b geöffnet ( sie ist offen)
dann öffne ich mit der klasse a noch eine klasse c und jetzt möchte ich mit klasse c auf klasse b zugreifen ohne das ich sie NEU öffne

wie mache ich das? erben kann ich ja nicht weil ich zb schon erbe von JFrame

thx im vorraus


this.dispose() funktioniert irgendwie nicht
 

Yourtime

Mitglied
also nach dem mir keiner helfen konnte und mir die antwort this.dispose nicht geholfen hat zuerst

musste ich mal 2 lehrer fragen ... und die api genauestens studieren :p .. also ihr beispiel zu windowlistener

habe dann endeckt das ich einfach windowlistener auch gut funktioniert( das mit windowsadapter habe ich nicht hingekriegt)

und habe dann auch herausgefunden zum befehl this(JFRAME).dispose brauche :/ was ich auch nicht wusste...

habs umgeändert und es funktioniert


denn das einzigste was ich wollte war
Mit 1 button das Frame schließen ( aber nicht mit System.exit(0);)

Das Problem war
JFrame und JPanel waren in einer eigenen klasse ... deshalb wusste ich nicht wie ich das machen soll
trotzdem thx... für die naja versuchende hilfe:p
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
A Problem mit JFrame in separater Klasse AWT, Swing, JavaFX & SWT 3
M JFrame Graphics.drawString Problem AWT, Swing, JavaFX & SWT 11
O Problem mit JFrame auf Linux Mint 13 Maya in VirtualBox AWT, Swing, JavaFX & SWT 3
B Schwer zu beschreibendes Problem mit JFrame oder JButton AWT, Swing, JavaFX & SWT 8
S JFrame problem mit Scrolling AWT, Swing, JavaFX & SWT 2
P Problem beim erstellen eines JPanel in einem JFrame AWT, Swing, JavaFX & SWT 7
L JFrame/Content Pane height Problem AWT, Swing, JavaFX & SWT 4
F Swing Problem mit KeyListener||paintComponent() in JFrame AWT, Swing, JavaFX & SWT 12
L Swing Größen-Problem mit JFrame AWT, Swing, JavaFX & SWT 2
Developer_X Swing JFrame problem AWT, Swing, JavaFX & SWT 5
F jFrame Problem. AWT, Swing, JavaFX & SWT 3
T JFrame Componenten Problem AWT, Swing, JavaFX & SWT 17
B Swing Problem mit Jframe AWT, Swing, JavaFX & SWT 9
Iron Monkey JFrame Problem mit setAlwaysOnTop AWT, Swing, JavaFX & SWT 2
M JFrame - Problem mit Bildaufbau AWT, Swing, JavaFX & SWT 17
L JFrame Refresh-Problem AWT, Swing, JavaFX & SWT 4
A Problem mit Jframe und mouseevent AWT, Swing, JavaFX & SWT 10
F JFrame Close Problem AWT, Swing, JavaFX & SWT 1
M JFrame Problem AWT, Swing, JavaFX & SWT 4
C TextArea Problem :( TextArea über komplettem JFrame AWT, Swing, JavaFX & SWT 2
T Editor auf Basis JFrame in ein JPanel wandeln - Problem! AWT, Swing, JavaFX & SWT 5
X JFrame Icon problem AWT, Swing, JavaFX & SWT 3
G Swing Jframe Problem AWT, Swing, JavaFX & SWT 4
O JFrame Problem AWT, Swing, JavaFX & SWT 2
V Listener Problem im JFrame AWT, Swing, JavaFX & SWT 4
V JFrame -> JDialog -> JDialog: Problem owner AWT, Swing, JavaFX & SWT 3
G MouseEvent Problem mit JFrame über einen modalen JDialog AWT, Swing, JavaFX & SWT 3
B Kleines JFrame Problem (oder doch größer?) AWT, Swing, JavaFX & SWT 2
A Problem mit JFrame AWT, Swing, JavaFX & SWT 2
Juelin Problem mit TextField.requestFocus(); AWT, Swing, JavaFX & SWT 17
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen


Oben