PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java: JComponent in fixes Panel einfügen



Sym
19-11-2003, 17:35
Hi,

ich habe ein kleines Problem, beim einfügen einer JScrollPane in ein JPanel. Ich nehme ein JComponent aus dem Panel raus und möchte ein neues einfügen. Leider bleibt die Größe des Panels nicht fix.

Was ich möchte ist, dass das eingefügte JScrollPane entsprechend Scaliert in das Panel eingefügt wird.

Hmpf - vielleicht sollte ich mal ein bis zwei Tage Pause machen...

bischi
19-11-2003, 18:30
Was für einen Layoutmanager brauchst du?

MfG Bischi

Lin728
19-11-2003, 19:05
Soweit ich weiß errechnen sich container die eigene größe and er größe ihrer kinderwidgets.
Du musst die größe des panels mit setSize() fixsetzten....

bischi
19-11-2003, 20:53
Stimmt, kommt aber darauf an, welchen Layoutmanager er verwendet!

MfG Bischi

Sym
26-11-2003, 17:06
Hallo,

ich habe nun vieles versucht. Mit Layout-Manager und ohne.

FlowLayout hat mich leider nicht zum Ziel gebracht. Aber ich versuche es zunächst noch anders. Wenn's klappt (oder auch nicht) melde ich micht nochmal ;).

Vielen Dank...

Sym
07-12-2003, 17:17
Hallo,

ich hatte jetzt endlich wieder Zeit, mich damit beschäftigen zu können.

Meine Klasse MainGUI erbt von der Klasse MainFrame, welche widerrum von der Basisklasse JFrame erbt.

Die Klasse MainGUI besitzt ein GridBagLayout. Der Code sieht der Methode setPanels() folgendermaßen aus:

try {
GridBagLayout GBL = new GridBagLayout();
this.getContentPane().setLayout(GBL);

//add in ContentPane
this.getContentPane().add(this.bpFileList);
this.getContentPane().add(this.bpFunction);
this.getContentPane().add(this.bpContent);
this.getContentPane().add(this.bpResult);
this.getContentPane().add(this.bpInfoPanel);

this.setBorderPanel(GBL, this.bpFileList, 1, 2, 0, 0, 1.0, 1.0);
this.setBorderPanel(GBL, this.bpFunction, 2, 1, 1, 0, 1.0, 1.0);
this.setBorderPanel(GBL, this.bpContent, 1, 1, 0, 2, 1.0, 1.0);
this.setBorderPanel(GBL, this.bpResult, 1, 1, 2, 2, 1.0, 1.0);
this.setBorderPanel(GBL, this.bpInfoPanel,1, 1, 1, 2, 1.0, 1.0);

this.bpFileList.add(this.jspFileList);
this.bpContent.add(this.jspContent);
this.bpResult.add(this.jspResult);
this.bpInfoPanel.add(this.jspInfo);

SelectionListener selList = new SelectionListener();
this.fileList.addListSelectionListener(selList);

show();

this.content.setSize(this.bpContent.getSize());
this.info.setSize(this.bpInfoPanel.getSize());
this.fileList.setSize(this.bpFileList.getSize());
this.result.setSize(this.bpResult.getSize());

this.tmContent.addColumn("x-Werte");
this.tmContent.addColumn("y-Werte");
this.tmInfo.addColumn("");
this.tmInfo.addColumn("");
//pack();
}// try


Leider sind die JTable content und info zu groß für die BorderPanel.

Was noch zu erwähnen bleibt ist, dass die JTable's zuvor jeweils in eine ScrollPane eingebettet sind, welche aber keine Size zugeordnet bekommen (habe ich aber auch schon versucht).

So, ich hoffe, mein Problem wird nachvollzogen und verstanden, doch noch mehr hoffe ich, das ihr mir helfen könnt.

Viele Dank

Sym
14-12-2003, 21:36
Oder habe ich mich zu unklar ausgedrückt?

Vielleicht kann mir ja jemand helfen...