Fenster per Button schließen

Status
Nicht offen für weitere Antworten.

DonJure

Bekanntes Mitglied
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class bearb_Fenster extends JFrame {
        Vector v;
        
    /** Creates a new instance of bearb_Fenster */
    public bearb_Fenster(Vector v) {
        this.v=v;
       
        
        getContentPane().setLayout(new BorderLayout());
        JPanel eingabefeld = new JPanel();
        
        eingabefeld.setLayout(new GridLayout(10,2,30,0));
        eingabefeld.setBackground(Color.white);
        eingabefeld.setBorder(
        BorderFactory.createTitledBorder("Kundendaten"));
        
        JLabel lEins = new JLabel("Nachname");
        JTextField tEins= new JTextField(v.elementAt(1).toString());
        
        
        JLabel lZwei = new JLabel("Vorname");
        JTextField tZwei= new JTextField(v.elementAt(2).toString());
        
        
        JLabel lDrei = new JLabel("Stadt");
        JTextField tDrei= new JTextField(v.elementAt(4).toString());
        
        JLabel lVier = new JLabel("Strasse/ Hausnr.");
        JTextField tVier= new JTextField(v.elementAt(5).toString());
        
        JLabel lFunf = new JLabel("PLZ");
        JTextField tFunf= new JTextField(v.elementAt(3).toString());
        
        JLabel lSechs = new JLabel("Kennzeichen");
        JTextField tSechs= new JTextField(v.elementAt(7).toString());
        
        JLabel lSieben = new JLabel("Fahrzeug");
        JTextField tSieben= new JTextField(v.elementAt(6).toString());
        
        JLabel lAcht = new JLabel("Letzte Inspection(z.B: 01.01.2004)");
        JTextField tAcht= new JTextField(v.elementAt(8).toString());
        
        JButton update = new JButton("Updaten");
        JPanel spei = new JPanel();
        spei.setLayout(new GridLayout(1,1,10,10));
        spei.setBackground(Color.WHITE);
        JLabel spacer8 = new JLabel();
              
        spei.add(update);        
       
        
        JLabel spacer1 = new JLabel();
        JLabel spacer2 = new JLabel();
        
        JLabel spacer5 = new JLabel();
            
        
        
        eingabefeld.add(lEins);
        eingabefeld.add(lZwei);
        eingabefeld.add(tEins);
        eingabefeld.add(tZwei);
        eingabefeld.add(lDrei);
        eingabefeld.add(lVier);
        eingabefeld.add(tDrei);
        eingabefeld.add(tVier);
        eingabefeld.add(lFunf);
        eingabefeld.add(lSechs);
        eingabefeld.add(tFunf);
        eingabefeld.add(tSechs);
        eingabefeld.add(lSieben);
        eingabefeld.add(lAcht);
        eingabefeld.add(tSieben);
        eingabefeld.add(tAcht);
        eingabefeld.add(spacer1);
        eingabefeld.add(spacer2);
        
        eingabefeld.add(spacer5);
        eingabefeld.add(spei);
        
        getContentPane().add(eingabefeld,BorderLayout.CENTER);
        
        
        setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-getSize().width)/4 ,
        (Toolkit.getDefaultToolkit().getScreenSize().height-getSize().height)/4 );
        
        update.addActionListener(new update_Eintrag(tEins,tZwei,tDrei,tVier,tFunf,tSechs,tSieben,tAcht,v));
        
        setSize(320,240);
        setVisible(true);
        setResizable(false);
    }
    
}

//-----------------------------

import java.net.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class update_Eintrag 
    implements ActionListener{
    
    JTextField t1, t2, t3, t4, t5, t6, t7, t8;
    Connection conn;
    ResultSet rs;
    boolean more;
    String line,zeile,sqlQuery;
    Vector v;
    
    
    /** Creates a new instance of update_Eintrag */
    public update_Eintrag(JTextField tEins, JTextField tZwei, JTextField tDrei, JTextField tVier, JTextField tFunf,
    JTextField tSechs, JTextField tSieben, JTextField tAcht, Vector v) {
        this.t1=tEins;
        this.t2=tZwei;
        this.t3=tDrei;
        this.t4=tVier;
        this.t5=tFunf;
        this.t6=tSechs;
        this.t7=tSieben;
        this.t8=tAcht;
        this.v=v;
       
       
    }
    
    public void actionPerformed(ActionEvent e) {
    if((t1.getText().length() == 0) || (t2.getText().length() == 0) || (t3.getText().length() == 0)
        || (t4.getText().length() == 0) || (t5.getText().length() == 0) || (t6.getText().length() == 0)
        || (t7.getText().length() == 0) || (t8.getText().length() == 0)){
            //System.out.println("- Leer -");
         
        }
        else{
            
             try { Class.forName("org.hsqldb.jdbcDriver"); }
            catch(ClassNotFoundException cnfe) {
                System.out.println("Treiber kann nicht geladen werden: "+cnfe.getMessage()); }
            
            try{
                conn = DriverManager.getConnection("jdbc:hsqldb:c:/Temp/DataBase","SA","");
                Statement stmt = conn.createStatement();
                int i = Integer.parseInt(v.elementAt(0).toString());
                sqlQuery = "UPDATE KundenData SET Nachname = '"+t1.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET Vorname = '"+t2.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET Stadt = '"+t3.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET Strasse = '"+t4.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET PLZ = '"+t5.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET Kennzeichen = '"+t6.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET Fahrzeug = '"+t7.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                sqlQuery = "UPDATE KundenData SET Datum = '"+t8.getText()+"' WHERE ID = '"+i+"'";
                stmt.executeQuery(sqlQuery);
                
                // Auslese;
               
                
            }
            catch(SQLException sqle){System.out.println("Fehler:" +  sqle.getMessage());}
            
            if (conn != null) {
                try { conn.close(); }
                catch(SQLException sqle) { System.out.println(sqle.getMessage()); }
            }
        }
     
    }
}

Edit deathbyaclown: Code tags eingefügt
 
B

bygones

Gast
mach einfach
Code:
setVisible(false); dispose();

hey - wer hat dir erlaubt vor mir zu antworten :wink:
 

DonJure

Bekanntes Mitglied
wie sehe dass denn konkret in diesem code aus?
ich weiß diese frage ist eine frechheit - aber habe glaube ich zu lange jetzt davor gesessen und weiß es einfach nicht mehr.

dass wäre super nett.
 

Illuvatar

Top Contributor
Dazu müsste man wissen, wo du eine neue Instanz von bearb_fenster erstellst (oder habe ich das nur übersehen?).

@deathbyaclown: Ich! Hä, hä 8)
 

DonJure

Bekanntes Mitglied
Code:
import java.net.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class bearb_Listener implements ActionListener{
    JList liste;
    String sqlQuery;
    Connection conn;
    ResultSet rs;
    boolean more;
    Vector v;
   
    /** Creates a new instance of bearb_Listener */
    public bearb_Listener(JList liste) {
        this.liste=liste;
       
    }
    
    public void actionPerformed(ActionEvent e) {
        int a = liste.getSelectedIndex();
        if(liste.getSelectedIndex() != -1){
            String data = liste.getSelectedValue().toString();
            String[] array = data.split(" ");
            try { Class.forName("org.hsqldb.jdbcDriver"); }
            catch(ClassNotFoundException cnfe) {
                System.out.println("Treiber kann nicht geladen werden: "+cnfe.getMessage()); }
            // -- Connection Erstellen
            try { conn = DriverManager.getConnection("jdbc:hsqldb:c:/Temp/DataBase","SA","");
            Statement stmt = conn.createStatement();
            
            sqlQuery = "SELECT * FROM KundenData WHERE ID = '"+ array[0] +"' ";
            rs = stmt.executeQuery(sqlQuery);
            more = rs.next();
        
        if(!more){
            //System.out.println("No rows found.");
            Vector leer = new Vector();
            leer.addElement("Liste ist Leer!");
            liste.setListData(leer);
            return;
            
        }
       
        
        while (more) {
             v = new Vector();
            //String d = rs.getString("ID") +" " + rs.getString("Nachname") +" " + rs.getString("Vorname") +" " + rs.getString("PLZ") +" " + rs.getString("Stadt") +" " + rs.getString("Strasse") +" "+ rs.getString("Fahrzeug") +" " + rs.getString("Kennzeichen") +" " + rs.getString("Datum");
            v.add(rs.getString("ID"));
            v.add(rs.getString("Nachname"));
            v.add(rs.getString("Vorname"));
            v.add(rs.getString("PLZ"));
            v.add(rs.getString("Stadt"));
            v.add(rs.getString("Strasse"));
            v.add(rs.getString("Fahrzeug"));
            v.add(rs.getString("Kennzeichen"));
            v.add(rs.getString("Datum"));
            more = rs.next();
            
        }
        bearb_Fenster miniFensta = new bearb_Fenster(v);   // <-- Da wird se erstellt;
        
            
            }
                        
            catch(SQLException sqle){
                System.out.println("Verbindung ist fehlgeschlagen: " + sqle.getMessage()); }
            
            if (conn != null) {
                try { conn.close(); }
                catch(SQLException sqle) { System.out.println(sqle.getMessage()); }
            }
           
        }
    }
    
}
 
B

Beni

Gast
So?
Code:
miniFensta.setVisible( false );

Das muss natürlich in einen ActionListener, und das "miniFensta" muss dort bekannt sein.

Frage: wieso hast du deinen ersten Post "verstümmelt" (oder war das ein böser Moderator?).

mfg Beni
 

DonJure

Bekanntes Mitglied
Wie mache ich dass denn?

der actionListener wird doch erst in der Instanz von miniFensta erzeugt.
wie übergebe ich denn dann miniFensta im Construcktor?
verstehe ich net ganz.
 
B

Beni

Gast
Ach so meinst du das.

Ich geh mal davon aus, der Schliessenbutton sitzt nicht auf dem Frame? (Das andere wäre einfach, den ActionListener im Frame schreiben, und fertig).

Du kannst du z.B. die Variable "miniFensta" als Instanzvariable definieren, damit man von aussen zugriff auf das Fenster erhält. Oder du übergibst das "miniFensta" gleich nachdem es hergestellt wurde dem ActionListener des Buttons.

Also ein Beispiel:

Code:
public class MainFrame{
  private bearb_Listener listener = new beab_Listener;

  public void initCloseButton(){
    JButton close = ...

    close.addActionListener( new ActionListener(){
      public void actionPerformed( ActionEvent e ){
        listener.closeMiniFensta();
      }
    });
  }
}

Code:
public class bearb_Listener implements ActionListener{
  private bearb_Fenster miniFensta = null;

  public void actionPerformed( ActionEvent e ){
    [...]
    if( miniFensta == null )
      miniFensta = new ...
  }

  public void closeMiniFensta(){
    if( miniFensta != null )
      miniFensta.setVisible( false );
  }
}
 

DonJure

Bekanntes Mitglied
Hallo Leute würde gern mein Problem noch mal aufgreifen....

Ich werde mal versuchen dass übersichtlich zu gestalten:

Also

Code:
public class GUI_Design extends JFrame{
        
    
    public GUI_Design(String titel) {
    ....
     JButton bearb = new JButton("Bearbeiten");

    

     bearb.addActionListener(new bearb_Listener(...));
    }
//hier steht noch ne main

}



Code:
public class bearb_Listener implements ActionListener{
    
    ...
    
    public bearb_Listener(....) {
   ....    
   }
   public void actionPerformed(ActionEvent e) {
    
  bearb_Fenster miniFensta = new bearb_Fenster(...); 
  }

}


Code:
public class bearb_Fenster extends JFrame {
       
     ....   
   
    public bearb_Fenster(...) {
    JButton update = new JButton("Updaten");
   
   
   update.addActionListener(new update_Eintrag(.....));
    }
}

Code:
public class update_Eintrag  
    implements ActionListener{
    
   .....
    
   
    public update_Eintrag(......) {
    ...
    }
    
    public void actionPerformed(ActionEvent e) {
      /*
      
         [b]Wie kann man hier an der Stelle das miniFensta schließen?[/b]
  
     */
   
    }


}

Quasi über den ersten Button öffnet sich ein Fenster zusätzlich. Auf dem zusätzlichen Fenster befindet sich ein weiterer Button womit ich gerne das zusätzliche Fenster schließen möchte. Wie mache ich dass?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Per Button Klick Fenster schließen?< Java Basics - Anfänger-Themen 7
A Fenster schließen soll Button kontakt auslösen. Java Basics - Anfänger-Themen 12
G Fenster schließen bei Klick auf Button Java Basics - Anfänger-Themen 4
S fenster nach button schließen Java Basics - Anfänger-Themen 2
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
K neues Fenster mit Button öffnen Java Basics - Anfänger-Themen 17
S vom button ein neues fenster öffnen Java Basics - Anfänger-Themen 1
C fenster erweitern durch button Java Basics - Anfänger-Themen 3
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
A Login Fenster Java Basics - Anfänger-Themen 3
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P gui fenster nur einmal aufrufen Java Basics - Anfänger-Themen 5
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben