Hallo,
ich habe ein sehr merkwürdiges Problem. Ich erarbeite mir gerade die ganzen Swing-Komponenten, da ich für mein Progrämmchen mit AWT an die Grenzen des Machbaren stieß.
Mit dem Java ist auch eine Insel Buch komme ich dabei gut zurecht und verstehe das alles soweit. Testweise habe ich erstmal wenige Komponenten erstellt, um Swing auszutesten. Dabei entstehen mir folgende Probleme die ich mir ob der völlig einfachen Umsetzung des ganzen nicht erklären kann:
1. Immer die letzte Komponente, die ich adde wird auf die Größe des gesamten Fensters gezogen. Hier im Beispielquelltext sind nur JLabels, aber es ist auch z.B. mit JButtons der Fall.
2. Die Textalignments funktionieren nicht. Ist doch eine ganz einfache Anweisung, die auch nicht weiter als hier ausgeführt im Buch dargestellt wird. Was soll man denn da noch hinzufügen? Komischerweise richtet Mac die Schrift standardmäßig oben aus, Windows in der Mitte des Labels. Swing soll doch eigentlich unabhängig von der Plattform sein, oder?
Hier der Code. Einfach nur 3 JLabels angezeigt:
Edit:
In AWT hatte ich diese Probleme nicht...
ich habe ein sehr merkwürdiges Problem. Ich erarbeite mir gerade die ganzen Swing-Komponenten, da ich für mein Progrämmchen mit AWT an die Grenzen des Machbaren stieß.
Mit dem Java ist auch eine Insel Buch komme ich dabei gut zurecht und verstehe das alles soweit. Testweise habe ich erstmal wenige Komponenten erstellt, um Swing auszutesten. Dabei entstehen mir folgende Probleme die ich mir ob der völlig einfachen Umsetzung des ganzen nicht erklären kann:
1. Immer die letzte Komponente, die ich adde wird auf die Größe des gesamten Fensters gezogen. Hier im Beispielquelltext sind nur JLabels, aber es ist auch z.B. mit JButtons der Fall.
2. Die Textalignments funktionieren nicht. Ist doch eine ganz einfache Anweisung, die auch nicht weiter als hier ausgeführt im Buch dargestellt wird. Was soll man denn da noch hinzufügen? Komischerweise richtet Mac die Schrift standardmäßig oben aus, Windows in der Mitte des Labels. Swing soll doch eigentlich unabhängig von der Plattform sein, oder?
Hier der Code. Einfach nur 3 JLabels angezeigt:
Java:
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
public class SwingGUI extends JFrame
{
JLabel pfeilLinks = new JLabel(),
reiterMitte = new JLabel(),
pfeilRechts = new JLabel();
public SwingGUI(){
setSize( 640, 480 );
setUndecorated(true);
setLocation(0, 0);
setResizable( false );
setTitle("SwingGUI");
setBackground(Color.black);
add(pfeilLinks);
pfeilLinks.setOpaque(true);
pfeilLinks.setBounds(188, 15, 33, 44);
pfeilLinks.setBackground(Color.white);
pfeilLinks.setText("<");
pfeilLinks.setHorizontalTextPosition(JLabel.CENTER);
pfeilLinks.setVerticalTextPosition(JLabel.BOTTOM);
//pfeilLinks.setBorder(new LineBorder(Color.red));
add(reiterMitte);
reiterMitte.setOpaque(true);
reiterMitte.setFont(new Font("SanSerif",Font.BOLD,16));
reiterMitte.setBounds(221, 15, 153, 44);
reiterMitte.setBackground(Color.white);
reiterMitte.setText("Menuepunkt");
reiterMitte.setHorizontalTextPosition(JLabel.CENTER);
reiterMitte.setVerticalTextPosition(JLabel.BOTTOM);
add(pfeilRechts);
pfeilRechts.setOpaque(true);
pfeilRechts.setBounds(374, 15, 33, 44);
pfeilRechts.setBackground(Color.white);
pfeilRechts.setText(">");
pfeilRechts.setHorizontalTextPosition(JLabel.CENTER);
pfeilRechts.setVerticalTextPosition(JLabel.BOTTOM);
}
public static void main( String[] args ) {
JFrame f = new SwingGUI();
f.setVisible( true );
}
}
Edit:
In AWT hatte ich diese Probleme nicht...