Jtables und die Tabellenbreite????

Status
Nicht offen für weitere Antworten.
G

gast

Gast
Moinsens,

ich habe ein kleines Problem. Ich lade mir aus einer db daten in eine Tabelle was auch kein Prob ist ABER die Tabelle zeigt leider alle alle Spalten auto. in gleicher Breite (des Frames) an. Gibst es eine Möglichkeiten um diese in Pixel oder anders schon vorher festzulegen???? Kann nix finden!!!!

mfg David
 
N

Nowotny

Gast
Hallo

Du kannst die Breite jeder Tabellenspalte mit setPreferredWidth() setzen.

Gruß
N.
 
B

Beni

Gast
Zur Verdeutlichung, wie ich das meinte:

Code:
public class Main{
   public static void main( String[] args ){
      // Die Daten für das Table
      String[][] data = new String[][]{
            {"a", "b", "c", "d"},
            {"e", "f", "g", "h"},
            {"i", "j", "k", "l"}
      };
      
      // Die Column-Titles
      String[] title = new String[]{
            "A", "B", "C", "D"
      };
      
      // Das JTable initialisieren
      JTable table = new JTable( data, title );
      
      // Das automatische Neusetzen der Grösse würde das Vorhaben, die Grösse selbst
      // zu setzen, stören.
      table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
      
      // Über das TableColumnModel kommt man an die wichtigen Daten
      TableColumnModel columnModel = table.getColumnModel();
           	
      columnModel.getColumn( 0 ).setPreferredWidth( 20 );
      columnModel.getColumn( 1 ).setPreferredWidth( 50 );
      columnModel.getColumn( 2 ).setPreferredWidth( 80 );
      columnModel.getColumn( 3 ).setPreferredWidth( 110 );
      
      JFrame frame = new JFrame( "Demo" );
      frame.getContentPane().add( new JScrollPane( table ) );
      frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      frame.pack();
      frame.setVisible( true );
   }
}
 

thE_29

Top Contributor
meine Variante ;)
Die IF Abfrage ist für welche Spalte!
Code:
  private void setColumnWidth()
  {
    for (int i = 0; i < m_tab.getColumnCount(); i++)
    {
      //m_tab = mein JTable
      TableColumn column = m_tab.getColumn(m_tab.getColumnName(i));
      //setzt die Tabellenspalten fix!
      if (i == 0 || i == 1 || i == 2 || i == 4 || i == 5)
      {
        column.setPreferredWidth(78);
        column.setMinWidth(78);
        column.setMaxWidth(83);
      }
      else if (i == 3)
      {
//        column.setPreferredWidth(102);
        column.setMinWidth(105);
      }
      else
      {
        //      column.setPreferredWidth(460);
        column.setMinWidth(460);
      }
    }
  }
 

AlArenal

Top Contributor
Ich habe eine Tabelle in einer vertikelen SplitPane, d.h. sie hat eine veränderliche Breite. Wie kann ich einzelnen Spalten eine feste Größe geben und gleichzeitig sicherstellen, dass die Tabelle über die komplette Breite geht (weil wenigstens eine andere Spalte variabel ist und sich auto-resized)?
 

thE_29

Top Contributor
jo nur das da 2 beispiele stehen wie es geht und du trotzdem du fragst ;)

sollen wir es dir nochmal posten? oder ist für dich lesen wirklich so schwer oder einfach umdenken, weil es nicht genau für dein bsp passt
 

AlArenal

Top Contributor
Wenn es so funktionieren würde, hätte ich es so gemacht, logsich oder?

Wenn ich aber 300 Pixel in der Breite habe und von einer Spalte für ein Datum möchte, dass sie immer sagen wir 75 Pixel breit ist und der User zieht die SplitPane auf, die Tabelle hat nun 370 Pixel Platz und ist trotzdem nur 300 breit, bringt mich das nicht wirklich weiter, denn das sieht mal endbescheiden aus.

Und da ich nicht weiß ob und wie man spaltenweise des Autoresizing (de-)aktivieren kann bringen mir auch 67 weitere Beispiele für ein starres Layout nichts. Auch logisch, oder?
 
R

Roar

Gast
:x ein blick in die API hätte da auch geholfen: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/table/TableColumn.html#setMinWidth(int)
 

AlArenal

Top Contributor
So schlau war ich gestern auch schon. Aber was soll das bringen? Mich bringt auch keine minimale Größe für ne Spalte weiter. Oder hab ich was überlesen?

Ich will eine oder mehrere SPalten einer Tabelle festsetzen und eine einzelne soll alles bekommen was sonst noch an Platz für die Table über ist. Schließlich hat die Splitpane in der die Tabelle sitzt auch ne minimale Breite, mit der ich kalkulieren kann, aber wie weit der User das Teil in die Breite zieht, ist allein sein Ding aber die Table muss sich entsprechend anpassen.

Das kann doch keine so ungewöhnliche Problemstellung sein.. ich find nur trotzdem alles andere, aber keinen Lösungsansatz dafür.
 

thE_29

Top Contributor
AlArenal, wie schon gesagt, DENKEN muss man halt natürlich auch ;)


wenn du alle Spalten die fest definiert sein sollen so machst

column.setMaxWidth(83); - rat mal was setMaxWidth heißen könnte, MH denk denk....

und die andere lässt du einfach

und tadaaa, die andere bläht sich auf den Rest auf weil die anderen nicht größer werden dürfen als setMaxWidth()!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
F Zeile in mehreren Jtables bei Selektion markieren AWT, Swing, JavaFX & SWT 11
P Zwei JTables auf eine A4-Seite mit einstellbaren Rändern AWT, Swing, JavaFX & SWT 9
M Swing Inhalt meines JTables wird falsch dargestellt AWT, Swing, JavaFX & SWT 8
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10
Helgon Zwei jTables gleich Breit AWT, Swing, JavaFX & SWT 4
S Swing Scrollpane und JTables AWT, Swing, JavaFX & SWT 6
D JTables, Test highlighten innerhalb einer Zelle AWT, Swing, JavaFX & SWT 5
T Zwei Jtables eine JscrollPane AWT, Swing, JavaFX & SWT 3
A Mehrere JTables in einem Fenster AWT, Swing, JavaFX & SWT 8
R Swing 2 jTables -2 Models - 1 Datenklasse: Änderungen AWT, Swing, JavaFX & SWT 11
K Swing Layout-Problem mit JTables und JLists (Mindestgrößen) AWT, Swing, JavaFX & SWT 11
Meldanor JTables - Zeilen hinzufügen/löschen AWT, Swing, JavaFX & SWT 4
S Übernehmen von Inhalten aus Zellen in JTables ohne Return AWT, Swing, JavaFX & SWT 7
C drei JTables, nur eine soll selektiert sein AWT, Swing, JavaFX & SWT 2
C MouseListener für Spalte eines JTables AWT, Swing, JavaFX & SWT 4
G Drag&Drop zwischen JTables AWT, Swing, JavaFX & SWT 2
I Drag and Drop zwischen zwei JTables AWT, Swing, JavaFX & SWT 5
V Grösse eines JTables ändern AWT, Swing, JavaFX & SWT 2
A mehrere jtables verwalten AWT, Swing, JavaFX & SWT 7
F JTables überschrift und Ordnung AWT, Swing, JavaFX & SWT 2
E 13 Jtables deren zellwerte voneinander abhaengen in jtabbed AWT, Swing, JavaFX & SWT 8
T Problem bei Update von JTables in JTabbedPane AWT, Swing, JavaFX & SWT 2
L Erste Spalte eines JTables soll nicht editierbar sein. AWT, Swing, JavaFX & SWT 7
J Daten in verschiedenen JTables AWT, Swing, JavaFX & SWT 5
K Objekt in eine bestimmte Zelle eines JTables legen AWT, Swing, JavaFX & SWT 3
N Zwei JTables in einem Frame AWT, Swing, JavaFX & SWT 8
S Tabellenbreite dem Inhalt anpassen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben