Home
/
JavaForum
/
Swing + AWT
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
4.730 User online
1 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 260 von 1460 (18%)
Autor
Thorsten Westmeier
Datum
23.09.03, 12:19
Betreff
Wie verschachtelt man Panels korrekt?
Hi,
ich habe ein Problem bei der Verschachtelung von Panels aus unterschiedlichen Dateien.
In der Datei ProMetaViewer erzeuge ich ein Frame mit einem CardLayout, das zwei Panels enthält.
Zuerst ist das "PanelLoginAbfrage" sichtbar. Bei einem erfolgreichen Login soll zum "PanelLoginErfolgreich" gewechselt werden.
Dies klappt auch, solange ich alles in einer Datei habe und das ActionEvent, das das neue Panel aufruft außerhalb vom Panel PLA liegt.
Wie läßt sich das ganze aber nun modular realisieren?
Ich kann ja aus PLA heraus leider nicht einfach die vorderste Karte des CardPanels mit cardLayout.show(cardPanel, "PLE");
wechseln, da cardLayout und cardPanel innerhalb dieses Panels unbekannt sind.
Wie wird so etwas realisiert?
Habe mal den entsprechenden Quellcode gekürzt und angehängt:
ProMetaViewer.java:
-------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.apache.log4j.*;
import com.ratundtat.beaver.factory.deploy.*;
import gui.*;
public class ProMetaViewer extends JFrame
{
JPanel cardPanel;
CardLayout cardLayout = new CardLayout();
public ProMetaViewer() throws LoaderFactoryException
{
setTitle("ProMeta-Swing Frame");
Container contentPane = getContentPane();
cardPanel = new JPanel();
cardPanel.setLayout(cardLayout);
contentPane.add(cardPanel, BorderLayout.CENTER);
PanelLoginAbfrage panelLoginAbfrage = new PanelLoginAbfrage();
cardPanel.add("PLA", panelLoginAbfrage);
PanelLoginErfolgreich panelLoginErfolgreich = new PanelLoginErfolgreich();
cardPanel.add("PLE", panelLoginErfolgreich);
}
public static void main(String[] args)
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.ERROR);
ProMetaViewer frmtst = new ProMetaViewer();
frmtst.setSize(800,600);
frmtst.setExtendedState(Frame.MAXIMIZED_BOTH);
frmtst.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmtst.show();
}
catch (Exception ex)
{
ex.printStackTrace();
System.exit(-1);
}
}
}
----------------------------------------------------------------------------------------------
PanelLoginAbfrage.java:
--------------------
package gui;
import java.awt.event.*;
import javax.swing.*;
import com.ratundtat.beaver.factory.deploy.*;
public class PanelLoginAbfrage extends JPanel
implements ActionListener
{
char[] usrpw = new char[6];
String usrnm = "user";
String usrspw = "user";
LoadedGui panelLoginAbfrageGUI;
JPanel panelLoginAbfrage;
JLabel plaLabelLoginTitel, plaLabelLoginInformation, plaLabelLoginName;
JLabel plaLabelLoginPasswort, plaLabelLoginError;
JTextField plaTFieldLoginName;
JPasswordField plaPFieldLoginPasswort;
JButton plaButtonLogin;
public PanelLoginAbfrage() throws LoaderFactoryException
{
LoaderFactory.setSetupPath("loader");
IGuiLoader loader = LoaderFactory.getLoader("gui/PmViewerLogin.bpx");
panelLoginAbfrageGUI = loader.createGui ("ModelLoginAbfrage");
panelLoginAbfrage = (JPanel)panelLoginAbfrageGUI.getWidget("PaLoginAbfrage");
plaLabelLoginTitel = (JLabel)panelLoginAbfrageGUI.getWidget("LbLoginTitel");
plaLabelLoginInformation = (JLabel)panelLoginAbfrageGUI.getWidget("LbLoginInformation");
plaLabelLoginName = (JLabel)panelLoginAbfrageGUI.getWidget("LbLoginName");
plaLabelLoginPasswort = (JLabel)panelLoginAbfrageGUI.getWidget("LbLoginPasswort");
plaTFieldLoginName = (JTextField)panelLoginAbfrageGUI.getWidget("TfLoginName");
plaPFieldLoginPasswort = (JPasswordField)panelLoginAbfrageGUI.getWidget("PfLoginPasswort");
plaLabelLoginError = (JLabel)panelLoginAbfrageGUI.getWidget("LbLoginError");
plaLabelLoginError.setText("");
plaButtonLogin = (JButton)panelLoginAbfrageGUI.getWidget("BtLogin");
plaButtonLogin.addActionListener(this);
this.add(panelLoginAbfrage);
}
public void actionPerformed (ActionEvent ae)
{
Object quelle = ae.getSource();
if (quelle == plaButtonLogin)
{
String nm = plaTFieldLoginName.getText();
String spw = new String(plaPFieldLoginPasswort.getPassword());
if (nm.equals(usrnm) && spw.equals(usrspw))
{
plaLabelLoginError.setText("");
//
// ===> cardLayout.show(cardPanel, "PLE"); oder ??? <===
//
}
else
{
plaLabelLoginError.setText("Authentifizierung gescheitert. Bitte überprüfen Sie Ihre Eingaben.");
plaTFieldLoginName.setText("");
plaPFieldLoginPasswort.setText("");
}
}
}
}
---------------------------------------------------------------------------------------------
PanelLoginErfolgreich.java:
------------------------
package gui;
import javax.swing.*;
import com.ratundtat.beaver.factory.deploy.*;
public class PanelLoginErfolgreich extends JPanel
{
LoadedGui panelLoginErfolgreichGUI;
JPanel panelLoginErfolgreich;
JLabel pleLabelTitel, pleLabelWillkommen, pleLabelUsername;
JLabel pleLabelTextUsertyp, pleLabelUsertyp, pleLabelTextVorigerLogin;
JLabel pleLabelVorigerLogin;
public PanelLoginErfolgreich() throws LoaderFactoryException
{
LoaderFactory.setSetupPath("loader");
IGuiLoader loader = LoaderFactory.getLoader("gui/PmViewerLogin.bpx");
panelLoginErfolgreichGUI = loader.createGui ("ModelLoginErfolgreich");
panelLoginErfolgreich = (JPanel)panelLoginErfolgreichGUI.getWidget("PaLoginErfolgreich");
pleLabelTitel = (JLabel)panelLoginErfolgreichGUI.getWidget("LbTitel");
pleLabelWillkommen = (JLabel)panelLoginErfolgreichGUI.getWidget("LbWillkommen");
pleLabelUsername = (JLabel)panelLoginErfolgreichGUI.getWidget("LbWertUsername");
pleLabelTextUsertyp = (JLabel)panelLoginErfolgreichGUI.getWidget("LbUsertyp");
pleLabelUsertyp = (JLabel)panelLoginErfolgreichGUI.getWidget("LbWertUsertyp");
pleLabelTextVorigerLogin = (JLabel)panelLoginErfolgreichGUI.getWidget("LbVorigerLogin");
pleLabelVorigerLogin = (JLabel)panelLoginErfolgreichGUI.getWidget("LbWertVorigerLogin");
this.add(panelLoginErfolgreich);
}
}
Diskussionsverlauf:
Wie verschachtelt man Panels korrekt?
AW: Wie verschachtelt man Panels korrekt?
Re: Wie verschachtelt man Panels korrekt?
Re: Wie verschachtelt man Panels korrekt?
Re: Wie verschachtelt man Panels korrekt?
Re: Wie verschachtelt man Panels korrekt?
Re: Wie verschachtelt man Panels korrekt?
Re: Wie verschachtelt man Panels korrekt?
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com