Infernal Frames

Status
Nicht offen für weitere Antworten.
M

Make my Day

Gast
HI,
und zwar hab ich folgendes Problem hab die aufgabe gekriegt Infernal Frames zu machen die ich über nen Stink normales menü aufrufe soweit so gut (hab mir nen Beispiel geholt).
Nun will ich aber das die nicht direkt beim start aufgehen die Internal Frames sonder erst wenn ich z.b auf: File/Compose Mail klicke.
Ich weiss aber nicht wie ich das in die Menüleiste implementieren kann ;(
Hab echt keine ahnung wie das geht.
Kann mir vll jemand weiterhelfen oder nen guten link posten?
Danke schonmal.
MFG

Hier der code:

Code:
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class TreeTest {

  /* Main View */
  public static void main(String[] a) {
    final JFrame jf = new JFrame("JIFrameDemo Main Window");

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    screenSize.width -= 42;
    screenSize.height -= 42;
    jf.setSize(screenSize);
    jf.setLocation(20, 20);

    JMenuBar mb = new JMenuBar();
    jf.setJMenuBar(mb);
    JMenu fm = new JMenu("File");
    mb.add(fm);
    JMenuItem mi;
    fm.add(mi = new JMenuItem("Mail Reader"));
    fm.add(mi = new JMenuItem("Compose Mail"));
    fm.add(mi = new JMenuItem("Users"));
    
    fm.add(mi = new JMenuItem("Exit"));
    mi.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        System.exit(0);
      }
    });

    JDesktopPane dtp = new JDesktopPane();
    //dtp.setBackground(Color.GREEN);
    jf.setContentPane(dtp);

    JInternalFrame mboxFrame = new JInternalFrame("Mail Reader", true,
        true, true, true);
    JLabel reader = new JLabel("Mail Reader Would Be Here");
    mboxFrame.setContentPane(reader);
    mboxFrame.setSize(400, 300);
    mboxFrame.setLocation(50, 50);
    mboxFrame.setVisible(true);
    dtp.add(mboxFrame);

    JInternalFrame compFrame = new JInternalFrame("Compose Mail", true,
        true, true, true);
    JLabel composer = new JLabel("Mail Compose Would Be Here");
    compFrame.setContentPane(composer);
    compFrame.setSize(300, 200);
    compFrame.setLocation(200, 200);
    compFrame.setVisible(true);
    dtp.add(compFrame);

    JInternalFrame listFrame = new JInternalFrame("Users", true, true,
        true, true);
    JLabel list = new JLabel("List of Users Would Be Here");
    listFrame.setContentPane(list);
    listFrame.setLocation(400, 400);
    listFrame.setSize(500, 200);
    listFrame.setVisible(true);
    dtp.add(listFrame);

    jf.setVisible(true);
    jf.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        jf.setVisible(false);
        jf.dispose();
        System.exit(0);
      }
    });
  }
}
 

Brainiac

Bekanntes Mitglied
In dem Du den anderen Menüeinträgen auch einen ActionListener anhängst und dann dort setVisible(true) machst. Also genauso wie beim Exit Menüeintrag.
 
M

Make my Day

Gast
Brainiac hat gesagt.:
In dem Du den anderen Menüeinträgen auch einen ActionListener anhängst und dann dort setVisible(true) machst. Also genauso wie beim Exit Menüeintrag.

also so oder wie ??

Code:
fm.add(mi = new JMenuItem("Users"));
    mi.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        setVisible(true);

aber woher weiss der Action Listener denn welchen INternel Frame er aufrufen soll?
 

Brainiac

Bekanntes Mitglied
Hab dir das ganze mal ein wenig umgestellt:

Code:
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class TreeTest extends JFrame implements ActionListener {
    JMenuBar menuBar;
    JMenu fileMenu;
    JMenuItem readMail, composeMail, userMenu, exit;
    JDesktopPane dtp;
    JInternalFrame mboxFrame, compFrame, listFrame;
    
    public TreeTest() {
        super("JIFrameDemo Main Window");
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        screenSize.width -= 42;
        screenSize.height -= 42;
        setSize(screenSize);
        setLocation(20, 20);
        
        menuBar = new JMenuBar();
        fileMenu = new JMenu("File");
        
        menuBar.add(fileMenu);
        setJMenuBar(menuBar);
        readMail = new JMenuItem("Mail Reader");
        readMail.addActionListener(this);
        fileMenu.add(readMail);
        
        composeMail = new JMenuItem("Compose Mail");
        composeMail.addActionListener(this);
        fileMenu.add(composeMail);
        
        userMenu = new JMenuItem("Users");
        userMenu.addActionListener(this);
        fileMenu.add(userMenu);
        
        exit = new JMenuItem("Exit");
        exit.addActionListener(this);
        fileMenu.add(exit);
        
        dtp = new JDesktopPane();
        setContentPane(dtp);
        
        mboxFrame = new JInternalFrame("Mail Reader", true, true, true, true);
        JLabel reader = new JLabel("Mail Reader Would Be Here");
        mboxFrame.setContentPane(reader);
        mboxFrame.setSize(400, 300);
        mboxFrame.setLocation(50, 50);
        dtp.add(mboxFrame);
        
        compFrame = new JInternalFrame("Compose Mail", true, true, true, true);
        JLabel composer = new JLabel("Mail Compose Would Be Here");
        compFrame.setContentPane(composer);
        compFrame.setSize(300, 200);
        compFrame.setLocation(200, 200);
        dtp.add(compFrame);
        
        listFrame = new JInternalFrame("Users", true, true, true, true);
        JLabel list = new JLabel("List of Users Would Be Here");
        listFrame.setContentPane(list);
        listFrame.setLocation(400, 400);
        listFrame.setSize(500, 200);
        dtp.add(listFrame);
        
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                setVisible(false);
                dispose();
                System.exit(0);
            }
        });
    }
    
    public static void main(String[] a) {
        new TreeTest().setVisible(true);
    }
    
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == exit) {
            setVisible(false);
            dispose();
            System.exit(0);
        } else if (e.getSource() == readMail) {
            mboxFrame.setVisible(true);
            compFrame.setVisible(false);
            listFrame.setVisible(false);
        } else if (e.getSource() == composeMail) {
            compFrame.setVisible(true);
            listFrame.setVisible(false);
            mboxFrame.setVisible(false);
        } else if (e.getSource() == userMenu) {
            listFrame.setVisible(true);
            compFrame.setVisible(false);
            mboxFrame.setVisible(false);
        }
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Interface 2 von einander unabhängige Frames mit Panel gleichzeitig nutzen Java Basics - Anfänger-Themen 66
I In der Mitte eines Frames mit BorderLayout etwas malen Java Basics - Anfänger-Themen 7
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
S Position eines Frames Java Basics - Anfänger-Themen 3
S Frames Verbinden Java Basics - Anfänger-Themen 19
S Auf eine variable/objekt eines frames zugrifen Java Basics - Anfänger-Themen 22
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
D Frame schließt gleich alle Frames Java Basics - Anfänger-Themen 5
U [Problem] Handling multiple frames Java Basics - Anfänger-Themen 5
G Aufrufen eines Frames aus einer anderen Klasse Java Basics - Anfänger-Themen 6
A Intelligente Anordnung von Frames in einer Fläche Java Basics - Anfänger-Themen 4
D Compiler-Fehler Frames verbinden Java Basics - Anfänger-Themen 6
S Mehrere Frames Java Basics - Anfänger-Themen 4
D JMenuBar und Hintergrund eines Frames Java Basics - Anfänger-Themen 2
M Zwei Frames ein ActionListener Java Basics - Anfänger-Themen 21
K Schließen eines Frames Java Basics - Anfänger-Themen 4
G Java-Frames funktionieren nach Neuinstallation nicht mehr. Java Basics - Anfänger-Themen 3
S Frames schließen Java Basics - Anfänger-Themen 14
D Sound in Frames möglich? EDIT Class Clip Java Basics - Anfänger-Themen 5
V Wie auf Elemente des Frames zugreifen Java Basics - Anfänger-Themen 4
A frames layout Java Basics - Anfänger-Themen 4
Z frames Java Basics - Anfänger-Themen 3
G Frames unabhänig schliessen. Java Basics - Anfänger-Themen 2
G Ist es möglich, den 'Rahmen' eines Frames durch Grafiken. Java Basics - Anfänger-Themen 5
G Liste in mehreren unabhängigen Frames aktualisieren. Java Basics - Anfänger-Themen 6
V Aufruf eines Frames Java Basics - Anfänger-Themen 6
H 3 buttons in 3-spalten eines frames Java Basics - Anfänger-Themen 3
E Farbänderung des Frames bei Klick . Java Basics - Anfänger-Themen 7
B Analoguhr und openTime eines Frames Java Basics - Anfänger-Themen 6
G Applets in Frames & Bilder Java Basics - Anfänger-Themen 10
P Beide frames werden geschlossen Java Basics - Anfänger-Themen 2
G mehrere Frames nacheinander aktualisieren Java Basics - Anfänger-Themen 2
G Methode zum schliessen eines frames - nicht durch windows X Java Basics - Anfänger-Themen 14
D Menü soll immer da bleiben - Frames sollen wechseln Java Basics - Anfänger-Themen 3
Chucky 2 Frames Farbwahl durch Buttons Java Basics - Anfänger-Themen 10
P Frage zu Frames: Fenster sichtbar, unsichtbar machen Java Basics - Anfänger-Themen 1
G Frames Java Basics - Anfänger-Themen 4
M 2 Frames Java Basics - Anfänger-Themen 16
M Daten zwischen Frames austauschen Java Basics - Anfänger-Themen 2
G Frames mit einander verbinden Java Basics - Anfänger-Themen 10
M 2 frames separat schliessen Java Basics - Anfänger-Themen 22
D Frage zu Frames! Java Basics - Anfänger-Themen 9
S Zwei Frames miteinander verbinden Java Basics - Anfänger-Themen 5
Q Kommunikation zwischen Frames Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben