[Java/Swing] Elemente werden nicht angezeigt

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/java_swing_elemente_werden_nicht_angezeigt_174433/page_1 - zur Vollversion wechseln!


moidaschl schrieb am 06.01.2007 um 19:12

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 schrieb am 06.01.2007 um 20:16

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 schrieb am 07.01.2007 um 12:11

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);
    }




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025