Forum: PC-Programmierung Java Swing Buttons hinzufügen


von jo (Gast)


Lesenswert?

Hallo, ich habe ein Beispiel von einem Java Buch, jedoch klappt es bei 
mir ncht wenn ich es in Eclipse einfüge:
1
import javax.swing.*;
2
public class Buttons extends JFrame {
3
  JButton abort = new JButton("Abbrechen");
4
  JButton whl = new JButton("Wiederholen");
5
  JButton err = new JButton("Fehler");
6
  
7
  public Buttons(){
8
     super("buttons");
9
    setSize(80,140);
10
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
11
    JPanel pane = new JPanel();
12
    pane.add(abort);
13
    pane.add(whl);
14
    pane.add(err);
15
16
17
  }
18
  public static void main(String[]arg){
19
    Buttons rb = new Buttons();
20
   rb.show();
21
  }
22
  
23
24
}

Die Buttons werden nicht angezeigt.
Außerdem wird das Wort show durchgestrichen.
Aber es ist 1:1 so aus einem Buch. Wie muss man es ändern, damit es 
funktioniert?

von Markus (Gast)


Lesenswert?

Hi Jo,

wenn man das Panel pane noch zum JFrame hinzufügt, dann können die 
Buttons auch angezeigt werden:
1
   pane.add(whl);
2
   pane.add(err);
3
   getContentPane().Add(pane);
4
  }

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

jo wrote:
> Hallo, ich habe ein Beispiel von einem Java Buch, jedoch klappt es bei
> mir ncht wenn ich es in Eclipse einfüge:
Wenn das SO im Buch steht schmeiß es am besten gleich aufs Altpapier!
Ansonsten: Buch mal genauer lesen.

1) Das Panel muß dem Frame hinzugefügt werden oder der Vorhanden 
Container [ getContentPane() ] verwendet werden.
2) Das Panel braucht wenn du die Buttons alle sehen willst einen Anderen 
Layoutmanager (z.B. BoxLayout oder so...)
3) schon mal über das "durchgestrichene" drübergegangen? Eclipse sagt 
dir dann was es damit auf sich hat nämlich das diese Methode deprecated 
(nicht zur Verwendung empfohlen) ist. Benutze setVisible(true) 
stattdessen.

von jo (Gast)


Lesenswert?

Hallo zusammen, danke für die Antworten.
Ich habe  noch
  getContentPane().add(pane);

ergänzt, jetzt geht's.
 Läubi, was meinst du mit deinem zweiten Hinweis? Ich habe den nicht 
befolgt, aber es klappt trotzdem. Was sind Layout Manager?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Google --> Java Insel Layoutmanager

von Markus (Gast)


Lesenswert?

Layout-Manager sind ein sehr leitstungsfähiges Konzept in AWT/Swing/SWT 
mit dem eine Positionierung von UI-Elementen ohne absolute Koordinaten 
und eine Größenanpassung beim Ändern von Größen von Formularen erreicht 
wird. Bei Sun gibt es dazu auch ein Tutorial:

http://java.sun.com/docs/books/tutorial/uiswing/layout/index.html

Gruß
Markus

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

jo wrote:
>  Läubi, was meinst du mit deinem zweiten Hinweis? Ich habe den nicht
> befolgt, aber es klappt trotzdem. Was sind Layout Manager?

Ohne wirst Du nicht auskommen, sonst kannst Du den Inhalt von Panels 
nicht anordnen. Es gibt eine Menge unterschiedlicher LayoutManager, z.B. 
GridbagLayout oder BorderLayout. Mal nachlesen.

Und wenn's wirklich so im Buch steht ist das schon mehr als schwach. Was 
ist das fuer ein Buch?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.