Swing Komponentengröße in JTabbedPane

sindylee2

Mitglied
Hallo zusammen,
ich habe ein Beispiel aus unserem Forum gefunden:
Java:
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
 
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;
 
public class TabbedPaneJTableTest extends javax.swing.JFrame {
    private JTabbedPane jTabbedPane1;
    private JPanel jPanel1;
    private JPanel jPanel2;
    private JScrollPane jScrollPane1;
    private JTable jTable1;
 
    /**
    * Auto-generated main method to display this JFrame
    */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                TabbedPaneJTableTest inst = new TabbedPaneJTableTest();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
            }
        });
    }
    
    public TabbedPaneJTableTest() {
        super();
        initGUI();
    }
    
    private void initGUI() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().add(getJTabbedPane1(), BorderLayout.CENTER);
            pack();
            setSize(400, 300);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    private JTabbedPane getJTabbedPane1() {
        if(jTabbedPane1 == null) {
            jTabbedPane1 = new JTabbedPane();
            jTabbedPane1.addTab("jPanel1", null, getJPanel1(), null);
            jTabbedPane1.addTab("jPanel2", null, getJPanel2(), null);
        }
        return jTabbedPane1;
    }
    private JPanel getJPanel2() {
        if(jPanel1 == null) {
            jPanel1 = new JPanel();
            BorderLayout jPanel1Layout = new BorderLayout();
            jPanel1.setLayout(jPanel1Layout);
            jPanel1.add(getJScrollPane1(), BorderLayout.CENTER);
        }
        return jPanel1;
    }
    private JPanel getJPanel1() {
        if(jPanel2 == null) {
            jPanel2 = new JPanel();
            GridBagLayout jPanel1Layout = new GridBagLayout();
            GridBagConstraints gbc = new GridBagConstraints();
            jPanel2.setLayout(jPanel1Layout);
            gbc.gridx = 0;
            gbc.gridy = 0;            
            jPanel2.add(new JLabel("test1"), gbc);
            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.ipadx = 10;
            jPanel2.add(new JTextField(), gbc);
            gbc.gridx = 0;
            gbc.gridy = 1;
            jPanel2.add(new JLabel("test2"), gbc);
            gbc.gridx = 1;
            gbc.gridy = 1;
            jPanel2.add(new JTextField(), gbc);
            gbc.gridx = 0;
            gbc.gridy = 2;
            jPanel2.add(new JLabel("test3"), gbc);
            gbc.gridx = 1;
            gbc.gridy = 2;
            jPanel2.add(new JTextField(), gbc);
        }
        return jPanel2;
    }
    
    private JScrollPane getJScrollPane1() {
        if(jScrollPane1 == null) {
            jScrollPane1 = new JScrollPane();
            jScrollPane1.setViewportView(getJTable1());
        }
        return jScrollPane1;
    }
    
    private JTable getJTable1() {
        if(jTable1 == null) {
            TableModel jTable1Model = 
                new DefaultTableModel(
                        new String[][] { { "One", "Two" }, { "Three", "Four" } },
                        new String[] { "Column 1", "Column 2" });
            jTable1 = new JTable();
            jTable1.setModel(jTable1Model);
        }
        return jTable1;
    }
 
}

Mein Frage ist: im "getJPanel1()", wie solle ich machen, so dass die Textfeldegröße dynamisch nach der Größe des ganzen Fensters geändert werden können, wenn ich das Fenster auf der Griffeck
ziehe?

Danke erst mal!
 

Ariol

Top Contributor
Java:
    private JPanel getJPanel1() {
        if(jPanel2 == null) {
            jPanel2 = new JPanel();
            GridBagLayout jPanel1Layout = new GridBagLayout();
            GridBagConstraints gbc = new GridBagConstraints();
            jPanel2.setLayout(jPanel1Layout);
            gbc.fill=GridBagConstraints.HORIZONTAL;
            gbc.gridx = 0;
            gbc.gridy = 0;            
            gbc.weightx=0; 
            jPanel2.add(new JLabel("test1"), gbc);
            gbc.gridx = 1;
            gbc.gridy = 0;
            gbc.ipadx = 10;
            gbc.weightx=1;
            jPanel2.add(new JTextField(), gbc);
            gbc.gridx = 0;
            gbc.gridy = 1;
            gbc.weightx=0; 
            jPanel2.add(new JLabel("test2"), gbc);
            gbc.gridx = 1;
            gbc.gridy = 1;
            gbc.weightx=1;
            jPanel2.add(new JTextField(), gbc);
            gbc.gridx = 0;
            gbc.gridy = 2;
            gbc.weightx=0;
            jPanel2.add(new JLabel("test3"), gbc);
            gbc.gridx = 1;
            gbc.gridy = 2;
            gbc.weightx=1;
            jPanel2.add(new JTextField(), gbc);
        }
        return jPanel2;
    }

Aber wieso gibt deine
Code:
getJPanel1()
-Methode jPanel2 aus und umgekehrt?
 

sindylee2

Mitglied
Dank Schön, Ariol!

Ach, Ich habe das Beispiel von unserem Forum geklaut, und meinen eignen Kode eingedrängt, mit "kopie/past" habe ich nicht genau aufgepasst, deswegen....
 

sindylee2

Mitglied
ich habe nun die Methode so geändert:
Java:
    private JPanel getJPanel1() {
    	jPanel2 = new JPanel();
        GridBagLayout jPanel1Layout = new GridBagLayout();
        GridBagConstraints gbc = new GridBagConstraints();
        jPanel2.setLayout(jPanel1Layout);
        gbc.fill=GridBagConstraints.HORIZONTAL;        
        gbc.gridx = 0;
        gbc.gridy = 0;            
        gbc.weightx=0;        
        jPanel2.add(new JLabel("test1"), gbc);
        gbc.gridx = 1;
        gbc.gridy = 0;        
        gbc.weightx=1;        
        jPanel2.add(new JTextField(), gbc);
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.weightx=0;        
        jPanel2.add(new JLabel("test2"), gbc);
        gbc.gridx = 1;
        gbc.gridy = 1;
        gbc.weightx=1;        
        jPanel2.add(new JTextField(), gbc);
        gbc.gridx = 0;
        gbc.gridy = 2;
        gbc.weightx=0;        
        jPanel2.add(new JLabel(""), gbc);
        gbc.gridx = 1;
        gbc.gridy = 2;
        gbc.weightx=1;        
    [B]    jPanel2.add(getJScrollPane1(), gbc);[/B]
        
        return jPanel2;
    }
warum ist die Tabelleinhalte gar nicht mehr zu sehen, wenn ich das Fenster ganz schmal und klein
gezogen habe?

Hat das mit "gbc.weighty=...;" zu tun? wie soll ich ändern?
 

sindylee2

Mitglied
Ich weiß nicht wie man ein screenshort hier einfügen kann.
Also du kannst einfach den kode mal ausführen ,dann ziehst du das Fenster schmal oder ganz klein,
dann würdest du den Effekt sehen.

Java:
package swgui;

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;

import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
 
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;
 
public class TabbedPaneJTableTest extends javax.swing.JFrame {
    private JTabbedPane jTabbedPane1;
    private JPanel jPanel1;
    private JPanel jPanel2;
    private JScrollPane jScrollPane1;
    private JTable jTable1;
 
    /**
    * Auto-generated main method to display this JFrame
    */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                TabbedPaneJTableTest inst = new TabbedPaneJTableTest();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
            }
        });
    }
    
    public TabbedPaneJTableTest() {
        super();
        initGUI();
    }
    
    private void initGUI() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().add(getJTabbedPane1(), BorderLayout.CENTER);
            pack();
            setSize(400, 300);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    private JTabbedPane getJTabbedPane1() {
        if(jTabbedPane1 == null) {
            jTabbedPane1 = new JTabbedPane();
            jTabbedPane1.addTab("jPanel1", null, getJPanel1(), null);
            jTabbedPane1.addTab("jPanel2", null, getJPanel2(), null);
        }
        return jTabbedPane1;
    }
    private JPanel getJPanel2() {
        if(jPanel1 == null) {
            jPanel1 = new JPanel();
            BorderLayout jPanel1Layout = new BorderLayout();
            jPanel1.setLayout(jPanel1Layout);
//            jPanel1.add(getJScrollPane1(), BorderLayout.CENTER);
        }
        return jPanel1;
    }
    private JPanel getJPanel1() {
    	jPanel2 = new JPanel();
        GridBagLayout jPanel1Layout = new GridBagLayout();
        GridBagConstraints gbc = new GridBagConstraints();
        jPanel2.setLayout(jPanel1Layout);
        gbc.fill=GridBagConstraints.HORIZONTAL;        
        gbc.gridx = 0;
        gbc.gridy = 0;            
        gbc.weightx=0;   
        jPanel2.add(new JLabel("test1"), gbc);
        gbc.gridx = 1;
        gbc.gridy = 0;        
        gbc.weightx=1;
        jPanel2.add(new JTextField(), gbc);
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.weightx=0; 
        jPanel2.add(new JLabel("test2"), gbc);
        gbc.gridx = 1;
        gbc.gridy = 1;
        gbc.weightx=1;   
        jPanel2.add(new JTextField(), gbc);
        gbc.gridx = 0;
        gbc.gridy = 2;
        gbc.weightx=0;      
        jPanel2.add(new JLabel(""), gbc);
        gbc.gridx = 1;
        gbc.gridy = 2;
        gbc.weightx=1;        
        jPanel2.add(getJScrollPane1(), gbc);
        
        return jPanel2;
    }
    
    private JScrollPane getJScrollPane1() {
        if(jScrollPane1 == null) {
            jScrollPane1 = new JScrollPane();
            jScrollPane1.setViewportView(getJTable1());
        }
        return jScrollPane1;
    }
    
    private JTable getJTable1() {
        if(jTable1 == null) {
            TableModel jTable1Model = 
                new DefaultTableModel(
                        new String[][] { { "One", "Two" }, { "Three", "Four" } },
                        new String[] { "Column 1", "Column 2" });
            jTable1 = new JTable();
            jTable1.setModel(jTable1Model);
        }
        return jTable1;
    }
 
}
 

Ariol

Top Contributor
Java:
        gbc.gridx = 1;
        gbc.gridy = 2;
        gbc.weightx=1;       
        gbc.weighty=1;        
        gbc.fill=GridBagConstraints.BOTH;
        jPanel2.add(getJScrollPane1(), gbc);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing GridBagLayout Komponentengröße festsetzen AWT, Swing, JavaFX & SWT 1
BabySuna darstellungsprobleme mit JTabbedPane und GridBagLayout AWT, Swing, JavaFX & SWT 8
I JTabbedPane mit DnD, [x]-Schaltfläche, [+]-Schaltfläche usw. AWT, Swing, JavaFX & SWT 1
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
B JTabbedPane Tabs anordnen AWT, Swing, JavaFX & SWT 2
D JTabbedPane GUI Experimente AWT, Swing, JavaFX & SWT 4
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
L JTabbedPane mit for Schleife aufbauen AWT, Swing, JavaFX & SWT 4
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
B StateChangeListener auf JTabbedPane AWT, Swing, JavaFX & SWT 5
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
F JTabbedPane bestimmten Tab ansprechen AWT, Swing, JavaFX & SWT 13
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
BRoll JTabbedPane setTitleAt OutOfBoundsExc AWT, Swing, JavaFX & SWT 4
K JTabbedPane Tab Markierung / Selektion AWT, Swing, JavaFX & SWT 4
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
L JTabbedPane Closebutton integrieren AWT, Swing, JavaFX & SWT 6
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
V JTabbedPane Eingefügte Labels verschoben AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
S Swing JTabbedPane: Nur nach ButtonClick und nicht nach Click auf Tab ins nächste Tab wechseln AWT, Swing, JavaFX & SWT 2
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
K Swing JTabbedPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 19
B Swing JTabbedPane in JApplet -> Reiter bei Aktualisation mehrmals zu sehen AWT, Swing, JavaFX & SWT 3
M JTabbedPane -> setSelectedIndex funzt nicht AWT, Swing, JavaFX & SWT 3
D Bestimmtes JPanel innerhalb eines JTabbedPane ansprechen AWT, Swing, JavaFX & SWT 2
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
J Swing Letzten Tab einer JTabbedPane ermitteln AWT, Swing, JavaFX & SWT 6
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
hdi Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 2
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
S JTabbedPane Problem AWT, Swing, JavaFX & SWT 3
S JTabbedPane AWT, Swing, JavaFX & SWT 4
D JTabbedPane mit Eventlistener versehen? AWT, Swing, JavaFX & SWT 9
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
K JTabbedPane setName() für jedes Tab AWT, Swing, JavaFX & SWT 2
G JTabbedPane - Länge der Reiter beeinflussen? AWT, Swing, JavaFX & SWT 9
G Swing JTabbedPane Was für ein Border wird da um die Tabs gezeichnet? AWT, Swing, JavaFX & SWT 6
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
M CloseButton bei JTabbedPane AWT, Swing, JavaFX & SWT 4
P Swing JTabbedPane mit JButton einen anderen Tab anzeigen AWT, Swing, JavaFX & SWT 9
D JTabbedPane zentrieren AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
Mike90 JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 17
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
D Swing Tab in JTabbedPane AWT, Swing, JavaFX & SWT 5
A JFrame > JTabbedPane > JPanel > addKeyListener AWT, Swing, JavaFX & SWT 18
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
M JTabbedPane - Tab auslesen AWT, Swing, JavaFX & SWT 2
H Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 9
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
S Border von JTabbedpane-Tab? AWT, Swing, JavaFX & SWT 3
M JTabbedPane Docable? AWT, Swing, JavaFX & SWT 3
L Swing JTabbedPane - Index vom Tab AWT, Swing, JavaFX & SWT 3
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
F Borders von JTabbedPane und JScrollPane AWT, Swing, JavaFX & SWT 5
W JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 4
G Swing JTabbedPane vergrößern AWT, Swing, JavaFX & SWT 2
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
D Tabs von JTabbedPane stylen AWT, Swing, JavaFX & SWT 6
U JTabbedPane: Layout-Probleme bei addTab zur Laufzeit AWT, Swing, JavaFX & SWT 2
1 JTabbedPane Tab ausdehnen AWT, Swing, JavaFX & SWT 3
F Swing JTabbedPane: Zur Laufzeit die Tabreihenfolge ändern AWT, Swing, JavaFX & SWT 2
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
K LookAndFeel JTabbedPane mit Icon und CloseButton AWT, Swing, JavaFX & SWT 2
D Swing Probleme bei mit JTabbedPane.getChildren() AWT, Swing, JavaFX & SWT 4
I Swing Randnutzung bei JTabbedPane.LEFT AWT, Swing, JavaFX & SWT 2
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
P JTabbedPane und fill? AWT, Swing, JavaFX & SWT 2
D Swing mehrere JTable in separaten Tabs einer JTabbedPane AWT, Swing, JavaFX & SWT 2
G JTabbedPane transparent AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
S Scrollbar in einem JTabbedPane AWT, Swing, JavaFX & SWT 4
A Schriftfarbe von jTabbedPane und Button Ändern AWT, Swing, JavaFX & SWT 7
R JTabbedPane Selektion verfolgen? AWT, Swing, JavaFX & SWT 2
byte JTabbedPane - Insets entfernen AWT, Swing, JavaFX & SWT 7
S JTabbedPane child setBounds AWT, Swing, JavaFX & SWT 4
J jTabbedPane mit jPanel füllen AWT, Swing, JavaFX & SWT 14
A JTable im JTabbedPane -> Überschriften werden nicht angez AWT, Swing, JavaFX & SWT 2
V Extended JTabbedPane AWT, Swing, JavaFX & SWT 7
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
G JTabbedPane wird groesser wenn man anderen Tab auswaehlt. AWT, Swing, JavaFX & SWT 2
A JTabbedPane Tabwechsel rausfinden AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1
T Wie aktualisiere ich die Contents einer JTabbedPane? AWT, Swing, JavaFX & SWT 3
G JTabbedPane zentiert alles AWT, Swing, JavaFX & SWT 3
P Schließen-Button bei JTabbedPane? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben