"We are back" « oc.at

[Java/Swing] Elemente werden nicht angezeigt

moidaschl 06.01.2007 - 19:12 2014 2
Posts

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Schönen Abend!

Ich muss mich gezwungenermaßen mit Swing und Java im Allgemeinen herumschlagen, stoße dabei jedoch oft auf Probleme. Bis jetzt konnte ich die doch recht gut lösen (stehe ja noch am Anfang), aber jetzt gibts ein Problem das mir nicht einleuchten will.

Das Label wird nicht angezeigt, und die Größeneinstellung wird auch einfach übergangen. Was hats da? Ich nehme an, dass Leute mit ein bissl mehr Swing-Erfahrung mir da sofort unter die Arme greifen können, oder? :)

Nachfolgend nun der Code

tia, daschl

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JBook extends JFrame implements ActionListener
{
    /* Variables */
    private JLabel jlbDefault;
    private JMenu jmenuFile, jmenuHelp;
    private JMenuItem jmenuitemNew, jmenuitemDisconnect, jmenuitemSettings,  
                      jmenuitemExit, jmenuitemAbout;
    private JPanel jplMaster;

    public JBook()
    {
        /* Set up the JMenuBar */
        jmenuFile = new JMenu("File");

        jmenuitemNew = new JMenuItem("New");
        jmenuitemDisconnect = new JMenuItem("Disconnect");
        jmenuitemSettings = new JMenuItem("Settings");
        jmenuitemExit = new JMenuItem("Exit");

        jmenuFile.add(jmenuitemNew);
        jmenuFile.add(jmenuitemDisconnect);
        jmenuFile.addSeparator();
        jmenuFile.add(jmenuitemSettings);
        jmenuFile.addSeparator();
        jmenuFile.add(jmenuitemExit);

        jmenuHelp = new JMenu("Help");

        jmenuitemAbout = new JMenuItem("About");

        jmenuHelp.add(jmenuitemAbout);

        JMenuBar mb = new JMenuBar();
        mb.add(jmenuFile);
        mb.add(jmenuHelp);
        setJMenuBar(mb);

        /* Set the frame layout manager */
        setBackground(Color.gray);

        jplMaster = new JPanel();

        jlbDefault = new JLabel("Not Connected");
        jlbDefault.setHorizontalTextPosition(JLabel.CENTER);
        jlbDefault.setOpaque(true);
        
        getContentPane().add(jlbDefault, BorderLayout.SOUTH);

        addWindowListener(new WindowAdapter() {
            public void windowClosed(WindowEvent e) {
			    System.exit(0);
			}
		});
    }

    public void actionPerformed(ActionEvent e)
    {
        
    }

    public static void main(String args[])
    {
        JBook jb = new JBook();
        Container contentPane = jb.getContentPane();
        contentPane.setLayout(new BorderLayout());
        jb.setTitle("JBook | Intelligent SQL Management");
        jb.setSize(241, 217);
        jb.pack();
        jb.setLocation(400, 250);
        jb.setVisible(true);
    }
}

Symon

Addicted
Avatar
Registered: Jul 2001
Location: Vienna
Posts: 483
Zitat von moidaschl
Das Label wird nicht angezeigt, und die Größeneinstellung wird auch einfach übergangen. Was hats da?
bin zwar auch net der swing guru und ich kanns leider net ausprobieren, aber ich nehm an swing wirds net mögen, dass du das layout erst nach dem erstellen setzt (is borderlayout nicht eh default?).
und wegen der größe: setSize() und pack() danach wird wenig sinnvoll sein, entweder du setzt die preferred/minimum size und machst pack(), oder du lässt es weg.

hth

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Also ich hab jetzt nicht alles zu 100% verstanden was du mir vermitteln wolltest, aber ich bin mal meiner Intuition gefolgt und hab begonnen ein paar Zeilen zu entfernen und siehe da - es funktioniert. So ca. hab ich deine Message mitbekommen ;)

Für all jene, die es interessiert nachfolgend der neue Code der main Methode.

Code:
public static void main(String args[])
    {
        JBook jb = new JBook();

        jb.setTitle("JBook | Intelligent SQL Management");
        jb.setSize(241, 217);
        jb.setLocation(400, 250);
        jb.setVisible(true);
    }
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz