Hallo, ich habe folgendes Problem, ich möchte eine Gui programmieren, jedoch will ich ein Fenster (ProtokollVerwalten) das 2 Buttons enthält mit zwei vercshiedenen Fenstern verknüpfen, so das bei buttonklick, ein bestimmtes Fenster , das für den bestimmten Button gedacht ist geöffnet wird, und das alte Fenster geschlossen wird. Ich habe geschafft das beide Buttons ein und das selbe Fenster öffnen, jedoch klappt auch irgendwas mit der hide Methode nicht ! Könnt ihr mir helfen ?
Warum kann ich hier den codetag nicht benutzen ?
gruß lucky
Klasse PotokollVerwalten
Klasse ProtokollAnlegen
Klasse ProtokollEditieren
Das nächste mal die codetags bitte richtig einfügen - Roar
Warum kann ich hier den codetag nicht benutzen ?
gruß lucky
Klasse PotokollVerwalten
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import de.*;
import de.data.*;
import de.db.*;
import de.report.*;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
// Fensterklasse definieren
public class ProtokollVerwalten extends JFrame
{
JButton ProtokollAnlegen, ProtokollEditieren;
// Ereignisbehandlung für das Fenster
class CMeinWindowLauscher extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
// Ereignisbehandlung für die Steuerelemente
class CMeinActionLauscher implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
int i;
//ProtokollAnlegen.setText(e.paramString() );
//ProtokollEditieren.setText(e.paramString() );
//hier wird das neue Fenster geöffnet, eigentlich sollte das alte Fenster sich schließen, aber irgendwie
//geht die Methode hide noch nicht richtig hier!!!
ProtokollAnlegen Fenster = new ProtokollAnlegen("ProtokollAnlegen");
Fenster.pack();
Fenster.setSize(600,300);
Fenster.show();
// fenster2.hide(); geht nicht, warum wohl ???
}
}
// der Konstruktor
ProtokollVerwalten(String titel)
{
super(titel);
// Button-Instanzen erzeugen
//ProtokollAnlegen = new JButton(titel);
ProtokollAnlegen = new JButton ("ProtokollAnlegen");
ProtokollEditieren = new JButton("ProtokollEditieren");
// Layout-Manager zum Anordnen der Schalter
getContentPane().setLayout(new FlowLayout());
// Buttons in Fenster aufnehmen
getContentPane().add(ProtokollAnlegen);
getContentPane().add(ProtokollEditieren);
// Frame bei einem WindowListener anmelden
addWindowListener(new CMeinWindowLauscher ());
// Schalter bei ActionListener registrieren
ProtokollAnlegen.addActionListener(new CMeinActionLauscher());
ProtokollEditieren.addActionListener(new CMeinActionLauscher());
}
public static void main(String[] args)
{
ProtokollVerwalten fenster2 = new ProtokollVerwalten("ProtokollVerwalten");
fenster2.pack();
fenster2.setSize(200,100);
fenster2.show();
}
}
Klasse ProtokollAnlegen
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import de.*;
import de.data.*;
import de.db.*;
import de.report.*;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
public class ProtokollAnlegen extends JFrame implements ActionListener{
public static void main(String[]args){
ProtokollAnlegen auswahl = new ProtokollAnlegen("Protokoll anlegen");
auswahl.pack();
auswahl.setSize(700,500);
auswahl.show();
}
//der Konstruktor
ProtokollAnlegen(String titel)
{
super(titel);
//den Native Look and Feel erzwingen
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception ex)
{
System.err.println("Fehler bei LookandFeel\n");
}
JPanel pane = new JPanel();
pane.setLayout(new GridLayout(12,2,2,2));
setContentPane(pane);
JPanel zelle1 = new JPanel();
JPanel zelle2 = new JPanel();
JPanel zelle3 = new JPanel();
JPanel zelle4 = new JPanel();
JPanel zelle5 = new JPanel();
JPanel zelle6 = new JPanel();
JPanel zelle7 = new JPanel();
JPanel zelle8 = new JPanel();
JPanel zelle9 = new JPanel();
JPanel zelle10 = new JPanel();
JPanel zelle11 = new JPanel();
JPanel zelle12 = new JPanel();
JPanel zelle13 = new JPanel();
JPanel zelle14 = new JPanel();
JPanel zelle15 = new JPanel();
JPanel zelle16 = new JPanel();
JPanel zelle17 = new JPanel();
JPanel zelle18 = new JPanel();
JPanel zelle19 = new JPanel();
JPanel zelle20 = new JPanel();
JPanel zelle21 = new JPanel();
JPanel zelle22 = new JPanel();
//Label
JLabel text1 = new JLabel("Student auswählen");
text1.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle1.add(text1);
JLabel text2 = new JLabel("Pruefer1 auswählen");
text2.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle3.add(text2);
JLabel text5 = new JLabel("Pruefer2 auswählen");
text5.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle5.add(text5);
JLabel text3 = new JLabel("Modul auswählen");
text3.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle7.add(text3);
JLabel text6 = new JLabel("RealDate");
text6.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle9.add(text6);
JLabel text7 = new JLabel("RealDauer");
text7.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle11.add(text7);
JLabel text8 = new JLabel("Ort");
text8.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle13.add(text8);
JLabel text9 = new JLabel("Protokoll-ID");
text9.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle15.add(text9);
JLabel text10 = new JLabel("Notiz");
text10.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle17.add(text10);
JLabel text11 = new JLabel("Note");
text11.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle19.add(text11);
//Liste
String[] elemente1 = {"Daniela","Kathrina","Meike","Tina","Gerrit", "Pierre"};
JList studenten = new JList(elemente1);
studenten.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
String[] elemente2 = {"Thies","Rathke","Roos","Schwarzer","Nohr", "Hutter"};
JList pruefer1 = new JList(elemente2);
pruefer1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
String[] elemente3 = {"Thies","Rathke","Roos","Schwarzer","Nohr", "Hutter"};
JList pruefer2 = new JList(elemente3);
pruefer2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
String[] elemente4 = {"BWL3","IT3","WM1"};
JList module = new JList(elemente4);
module.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
String[] elemente5 = {"1,0","1,3","1,7","2,0","2,3","2,7","3,0","3,3","3,7","4,0","4,3","4,7","5,0","5,3","5,7","6,0"};
JList note = new JList(elemente4);
module.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// Kombinationsfeld
JComboBox kombi1 = new JComboBox(elemente1);
zelle2.add(kombi1);
JComboBox kombi2 = new JComboBox(elemente2);
zelle4.add(kombi2);
JComboBox kombi3 = new JComboBox(elemente3);
zelle6.add(kombi3);
JComboBox kombi4 = new JComboBox(elemente4);
zelle8.add(kombi4);
JComboBox kombi5 = new JComboBox(elemente5);
zelle20.add(kombi5);
//Texteingabefeld
JTextField feld1= new JTextField(22);
feld1.setText(" ");
zelle10.add(feld1);
// Texteingabefeld
JTextField feld2= new JTextField(5);
feld2.setText(" ");
zelle12.add(feld2);
// Texteingabefeld
JTextField feld3= new JTextField(4);
feld3.setText(" ");
zelle14.add(feld3);
// Texteingabefeld
JTextField feld4= new JTextField(5);
feld4.setText(" ");
zelle16.add(feld4);
// Texteingabefeld
JTextField feld5= new JTextField(50);
feld5.setText(" ");
zelle18.add(feld5);
//Button
JButton speichern = new JButton("save");
zelle21.add(speichern);
JButton abbrechen = new JButton("cancel");
zelle22.add(abbrechen);
//Button save in Datenbank speichern
getRootPane().setDefaultButton(speichern);
pane.add(zelle1);
pane.add(zelle2);
pane.add(zelle3);
pane.add(zelle4);
pane.add(zelle5);
pane.add(zelle6);
pane.add(zelle7);
pane.add(zelle8);
pane.add(zelle9);
pane.add(zelle10);
pane.add(zelle11);
pane.add(zelle12);
pane.add(zelle13);
pane.add(zelle14);
pane.add(zelle15);
pane.add(zelle16);
pane.add(zelle17);
pane.add(zelle18);
pane.add(zelle19);
pane.add(zelle20);
pane.add(zelle21);
pane.add(zelle22);
//Menueleiste erstellen
JMenuBar menue_leiste = new JMenuBar();
JMenu menu1 = new JMenu("Programm");
JMenuItem prog_item1 = new JMenuItem ("Programm beenden");
prog_item1.addActionListener(this);
menu1.add(prog_item1);
menue_leiste.add(menu1);
setJMenuBar(menue_leiste);
//Fenster schließen
class CFensterLauscher extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
addWindowListener(new CFensterLauscher());
}
//Behandlung der Menuebefehle
public void actionPerformed(ActionEvent e)
{
String quelle = e.getActionCommand();
if(quelle.equals("Programm beenden"))
{
System.exit(0);
}
}
}
Klasse ProtokollEditieren
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import de.*;
import de.data.*;
import de.db.*;
import de.report.*;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
public class ProtokollEditieren extends JFrame implements ActionListener{
public static void main(String[]args){
ProtokollEditieren auswahl = new ProtokollEditieren("Protokoll editieren");
auswahl.pack();
auswahl.setSize(400,300);
auswahl.show();
}
//der Konstruktor
ProtokollEditieren(String titel)
{
super(titel);
//den Native Look and Feel erzwingen
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception ex)
{
System.err.println("Fehler bei LookandFeel\n");
}
JPanel pane = new JPanel();
pane.setLayout(new GridLayout(8,2,2,2));
setContentPane(pane);
JPanel zelle1 = new JPanel();
JPanel zelle2 = new JPanel();
JPanel zelle3 = new JPanel();
JPanel zelle4 = new JPanel();
JPanel zelle5 = new JPanel();
JPanel zelle6 = new JPanel();
JPanel zelle7 = new JPanel();
JPanel zelle8 = new JPanel();
JPanel zelle9 = new JPanel();
JPanel zelle10 = new JPanel();
JPanel zelle11 = new JPanel();
JPanel zelle12 = new JPanel();
//Label
JLabel text1 = new JLabel("Protokoll-ID auswählen");
text1.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle1.add(text1);
JLabel text2 = new JLabel("RealDate");
text2.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle3.add(text2);
JLabel text3 = new JLabel("RealDauer");
text3.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle5.add(text3);
JLabel text4 = new JLabel("Notiz");
text4.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle7.add(text4);
JLabel text5 = new JLabel("Note");
text5.setFont(new Font("Monospaced", Font.PLAIN, 12));
zelle9.add(text5);
//Liste
String[] elemente1 = {"1,0","1,3","1,7","2,0","2,3","2,7","3,0","3,3","3,7","4,0","4,3","4,7","5,0","5,3","5,7","6,0"};
JList note = new JList(elemente1);
note.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
String[] elemente2 = {"01","02","03","04","05","06","07","08","09","10"};
JList protokollID = new JList(elemente1);
protokollID.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// Kombinationsfeld
JComboBox kombi1 = new JComboBox(elemente1);
zelle10.add(kombi1);
JComboBox kombi2 = new JComboBox(elemente2);
zelle2.add(kombi2);
// Texteingabefeld
JTextField feld2= new JTextField(5);
feld2.setText(" ");
zelle4.add(feld2);
// Texteingabefeld
JTextField feld3= new JTextField(4);
feld3.setText(" ");
zelle6.add(feld3);
// Texteingabefeld
JTextField feld4= new JTextField(5);
feld4.setText(" ");
zelle8.add(feld4);
//Button
JButton speichern = new JButton("edit");
zelle11.add(speichern);
JButton abbrechen = new JButton("cancel");
zelle12.add(abbrechen);
pane.add(zelle1);
pane.add(zelle2);
pane.add(zelle3);
pane.add(zelle4);
pane.add(zelle5);
pane.add(zelle6);
pane.add(zelle7);
pane.add(zelle8);
pane.add(zelle9);
pane.add(zelle10);
pane.add(zelle11);
pane.add(zelle12);
//Menueleiste erstellen
JMenuBar menue_leiste = new JMenuBar();
JMenu menu1 = new JMenu("Programm");
JMenuItem prog_item1 = new JMenuItem ("Programm beenden");
prog_item1.addActionListener(this);
menu1.add(prog_item1);
menue_leiste.add(menu1);
setJMenuBar(menue_leiste);
//Fenster schließen
class CFensterLauscher extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
addWindowListener(new CFensterLauscher());
}
//Behandlung der Menuebefehle
public void actionPerformed(ActionEvent e)
{
String quelle = e.getActionCommand();
if(quelle.equals("Programm beenden"))
{
System.exit(0);
}
}
}
Das nächste mal die codetags bitte richtig einfügen - Roar