Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Desktop-Applikationen und Grafik > JTabbedPanel & JPanel - Probleme mit dem Layout
Antwort
 
Themen-Optionen
Alt 09.02.2005, 14:31   Nach oben    #1
Tactive
Gast
 
Beiträge: n/a
Standard JTabbedPanel & JPanel - Probleme mit dem Layout

Hallo,
ich habe ein Problem mit der Verwendung von einer JTabbedPane. Zuerst erstelle ich die JTabbedPane und weise Ihr dann ein JPanel Objekt das weiter Komponenten enthält zu.
Dummerweise werden nun aber alle Objekte der JPanel zentriert, so das sie mitting auf der aktiven Fläche der JTabbedPane stehen. Ich möchte aber das diese Objekte links Oben angeordnet werden. Es ist auch egal, welchen LayoutManager ich für das JPanel verwende, es wird alles mittig ausgerichtet.
Weiss da jemand vielleicht eine Lösung ??

Hier ist der Quellcode (übernommen vom Sun-Beispiel

Java Code:
  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. class TabbedPaneExample extends JFrame
  5. {
  6.     private     JTabbedPane tabbedPane;
  7.     private     JPanel      panel1;
  8.  
  9.  
  10.     public TabbedPaneExample()
  11.     {
  12.         setTitle( "Tabbed Pane Application" );
  13.         setSize( 300, 200 );
  14.         setBackground( Color.gray );
  15.  
  16.         JPanel topPanel = new JPanel();
  17.         topPanel.setLayout( new BorderLayout() );
  18.         getContentPane().add( topPanel );
  19.  
  20.         // Create the tab pages
  21.         createPage1();
  22.  
  23.         // Create a tabbed pane
  24.         tabbedPane = new JTabbedPane();
  25.         tabbedPane.addTab( "Page 1", panel1 );
  26.         topPanel.add(tabbedPane, BorderLayout.CENTER);
  27.     }
  28.  
  29.     public void createPage1()
  30.     {
  31.         GridBagConstraints c = new GridBagConstraints();
  32.         c.gridx  = 0;
  33.         c.gridy  = 0;
  34.         c.anchor = GridBagConstraints.NORTHWEST;
  35.        
  36.         panel1 = new JPanel(new GridBagLayout());
  37.         panel1.add(new JLabel("Hallo"), c);
  38.     }
  39.  
  40.     public static void main(String args[])
  41.     {
  42.         TabbedPaneExample mainFrame = new TabbedPaneExample();
  43.         mainFrame.setVisible(true);
  44.     }
  45. }
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.02.2005, 17:03   Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

Zitat:
topPanel.add(tabbedPane, BorderLayout.CENTER);
hier liegt meiner meinung nach das problem


Java Code:
  1. public TabbedPaneExample()
  2.     {
  3.         setTitle( "Tabbed Pane Application" );
  4.         setSize( 300, 200 );
  5.         setBackground( Color.gray );
  6.  
  7.         JPanel topPanel = new JPanel();
  8.        
  9.        // änderung
  10.         topPanel.setLayout( new FlowLayout(FlowLayout.LEFT));
  11.  
  12.  
  13.         getContentPane().add( topPanel );
  14.  
  15.         // Create the tab pages
  16.         createPage1();
  17.  
  18.         // Create a tabbed pane
  19.         tabbedPane = new JTabbedPane();
  20.         tabbedPane.addTab( "Page 1", panel1 );
  21.        
  22.        // änderung
  23.         topPanel.add(tabbedPane);
  24.     }
beny_mcde ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.02.2005, 10:03   Nach oben    #3
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 433
Standard

Hat es geholfen?
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2005, 15:03   Nach oben    #4
Tactive
Gast
 
Beiträge: n/a
Standard

Nein, das hat leider nicht geholfen. Nach der Änderung, wir das JTabbedPane Element nicht mehr auf die Größe des Dialoges gestreckt sondern umrahmt lediglich das JLabel-Element mit der Hello Schrift.

Was ich möchte ist, das das JTabbedPane sich an die Größe des Dialoges anpassst und die JPanel - Elemente die ich in das JTabbedPane packe nicht automatisch zentriert werden, sondern links oben ausgerichtet.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2005, 15:45   Nach oben    #5
Benutzer
 
Registriert seit: 15.02.2005
Beiträge: 33
Standard

Zitat:
Zitat von Tactive
Nein, das hat leider nicht geholfen. Nach der Änderung, wir das JTabbedPane Element nicht mehr auf die Größe des Dialoges gestreckt sondern umrahmt lediglich das JLabel-Element mit der Hello Schrift.

Was ich möchte ist, das das JTabbedPane sich an die Größe des Dialoges anpassst und die JPanel - Elemente die ich in das JTabbedPane packe nicht automatisch zentriert werden, sondern links oben ausgerichtet.
Versuche es doch einmal mit dem Null-Layout.
__________________
No Sig
Entitaet ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2005, 18:26   Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.091
Standard

Null-Layout ist keine Lösung.

Hast du schon das BoxLayout versucht?
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 05:50   Nach oben    #7
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 243
Standard

Also ich persönlich versuche eigentlich alle Probleme mit Border und Flowlayouts zu lösen. Und wenn ich auch JPanel in JPanel in JPanel...... usw. benutzen muss.


Zuerst kommt ein JPanel mit dem ich meine grobe Einteilung erzeugen also mit zwei oder drei JPanels (North,Center,South oder West,Center,East). Diese JPanels besitzen dann je nach Inhalt entweder das Border-, Flow- oder Gridbaglayout. GridBagLayout benutze ich dann nur zum setzen von sonstigen Swing Komponenten.

Was ich auch gerne als grundsätliches Layout benutze ist ein jSplitPane, damit kann man auch ganz hübsche Sachen machen(grundsätzliche vertikale oder horizontale Einteilung)

Um ein Verständniss vor allem die Möglichkeiten die in einem Layout liegen, kannst du ja mal in Netbeans das Dingens zusammenstupfen und dann dir den Quellcode zu gemüte führen. Auf diese Art und weise habe ich mir die Layout Geschichte ins Hirn getrieben. Mir zumindest fällt es leichter wenn ich erstmal fertigen Code sehen kann (Lernen anhand von Beispielen), dann kann man/frau wunderbar daraus ableiten und den Code dann selber verfeinern, neu schreiben oder rausfinden wie dumm man sich manchmal anstellen kann.

Aber du solltest trotzdem, daß dir Netbeans oder ähnliche IDEs den Code vorkauen, dich intensiv mit dem Thema Swing und Layouts auseinandersetzen.
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 09:20   Nach oben    #8
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 433
Standard

Hi,

Du kannst auch ein GridBagLayout dafür nutzen. Das kann noch ein wenig mehr als das BoxLayout.

Oder Du zentrierst es wie oben und nutzt Methoden aus der Klasse Box. Die können Dir leere Kästen zurückgeben und somit Dein Objekt verschieben.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2005, 15:27   Nach oben    #9
Tactive
Gast
 
Beiträge: n/a
Standard

Naja, also sind das ja alles auch nur Workarounds mit in sich verschachtelten Layouts und Panels usw.
Hatte eigendlich gehofft das es etwas leichter geht, aber geht wohl nicht.
Generell muss ich sagen das SWT da doch um einiges logischer und besser ist, aber da ich nunmal beruflich Swing programmieren muss, komme ich wohl nicht drumherum, auch wenn ich es für große Grütze halte.

Trotzdem danke für Eure Erklärungen / Erläuterungen.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit dem PEAR Paket HTML_Template_PHPLIB Ben PEAR, PECL und Frameworks 19 12.02.2007 10:51
Layout Probleme VipViper2000 Desktop-Applikationen und Grafik 8 13.09.2005 22:35
Probleme mit dem Öffnen einer Consolen Anwendung T04rer Desktop-Applikationen und Grafik 1 12.07.2005 09:22
Probleme mit dem KeyListener VipViper2000 Allgemeine Java-Programmierung 2 04.07.2005 03:04
Probleme bei 2 Animated gifs gleichzeitig auf dem MAC maxpower24 Desktop-Applikationen und Grafik 2 14.08.2004 22:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:00 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44