[Java/Swing] Elemente werden nicht angezeigt
moidaschl 06.01.2007 - 19:12 2014 2
moidaschl
Vollzeit-Hackler
|
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 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
|
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
|
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. 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);
}
|