Vraag : Grootte JScrollPane correct

In dit voorbeeld, is JScrollPane te groot. Ik heb een aantal manieren aan sizeit geprobeerd, maar niet het juist kunnen krijgen. Zie de „grootte???“ commentaar in klasse MyOptionsPanel.

To stelt deze toepassing in werking, in werking stelt de leiding in MyTabbedPane
" codeBody "
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:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
het meest tableTest package; de invoer java.awt.BorderLayout; de invoer java.awt. Afmeting; de invoer javax.swing.JComboBox; de invoer javax.swing.JLabel; de invoer javax.swing.JPanel; de invoer javax.swing.JScrollPane; de invoer javax.swing.JTable; de invoer javax.swing.SpringLayout; de invoer javax.swing.table.DefaultTableModel; de openbare klasse MyOptionsPanel breidt JPanel uit { privé JLabel plantLabel; privé JComboBox plantComboBox; privé JLabel animalLabel; privé JComboBox animalComboBox; privé JPanel listPanel; privé myTable JTable; privé Koord [] columnHeader = {„Plant/Dier“}; /** * aannemer */ openbare MyOptionsPanel () { layoutComponents (); } /** * lay-outcomponenten */ privé nietige layoutComponents () { // installatie plantLabel = nieuwe JLabel („Installatie“); this.add (plantLabel); Koord [] plantTypes = {„gras“, „forb“, „bloem“, „struik“, „boom“}; plantComboBox = nieuwe JComboBox (plantTypes); plantComboBox.setSelectedItem („gras“); this.add (plantComboBox); // dier animalLabel = nieuwe JLabel („Dier“); this.add (animalLabel); Koord [] animalTypes = {„hond“, „kat“, „paard“, „schapen“, „koe“}; animalComboBox = nieuwe JComboBox (animalTypes); animalComboBox.setSelectedItem („hond“); this.add (animalComboBox); // lijst listPanel = nieuwe JPanel (nieuwe BorderLayout ()); myTable = nieuwe JTable (); DefaultTableModel defaultTableModel = nieuwe DefaultTableModel (); stringArray koord [] [] = composeList (); stringArray defaultTableModel.setDataVector (, columnHeader); myTable.setModel (defaultTableModel); //myTable.setPreferredScrollableViewportSize (myTable.getPreferredSize ()); JScrollPane scrollPane = nieuwe (myTable) JScrollPane; listPanel.add (scrollPane); this.add (listPanel); // grootte??? plantLabelDimension van de afmeting = plantLabel.getPreferredSize (); animalDimension van de afmeting = animalLabel.getPreferredSize (); myListDimension van de afmeting = myTable.getPreferredSize (); scrollPaneDimension van de afmeting = scrollPane.getViewport () .getPreferredSize (); listPanellDimension van de afmeting = listPanel.getPreferredSize (); thisDimension van de afmeting = this.getPreferredSize (); //System.out.println („plantLabelDimensionbreedte: hoogte: “ + plantLabelDimension.width + „: “ + plantLabelDimension.height); //System.out.println („animalabelDimensionbreedte: hoogte: “ + animalDimension.width + „: “ + animalDimension.height); //System.out.println („myListbreedte: hoogte: “ + myListDimension.width + „: “ + myListDimension.height); //System.out.println („scrollPaneDimensionbreedte: hoogte: “ + scrollPaneDimension.width + „: “ + scrollPaneDimension.height); //System.out.println („listPanellDimensionbreedte: hoogte: “ + listPanellDimension.width + „: “ + listPanellDimension.height); int. breedte = listPanellDimension.width; myTable.setPreferredScrollableViewportSize (myTable.getSize ()); (waar) //myList.setFillsViewportHeight; scrollPane.getViewport () .setPreferredSize (myTable.getPreferredSize ()); scrollPane.getViewport () .setMinimumSize (myTable.getPreferredSize ()); scrollPane.getViewport () .setMaximumSize (myTable.getPreferredSize ()); int. hoogte = plantLabelDimension.height + animalDimension.height + scrollPaneDimension.height; thisDimension.setSize (breedte, hoogte); //System.out.println („thisDimensionbreedte: hoogte: “ + thisDimension.width + „: “ + thisDimension.height); this.setPreferredSize (thisDimension); SpringLayout springLayout = nieuwe SpringLayout (); this.setLayout (springLayout); // past beperkingen (d.w.z. positiecomponenten) aan // installatie springLayout.putConstraint (SpringLayout.WEST, plantLabel, 10, SpringLayout.WEST, dit); springLayout.putConstraint (SpringLayout.NORTH, plantLabel, 15, SpringLayout.NORTH, dit); springLayout.putConstraint (SpringLayout.WEST, plantComboBox, 110, SpringLayout.WEST, dit); springLayout.putConstraint (SpringLayout.NORTH, plantComboBox, 0, SpringLayout.NORTH, plantLabel); // dier springLayout.putConstraint (SpringLayout.WEST, animalLabel, 0, SpringLayout.WEST, plantLabel); springLayout.putConstraint (SpringLayout.NORTH, animalLabel, 15, SpringLayout.SOUTH, plantLabel); springLayout.putConstraint (SpringLayout.WEST, animalComboBox, 110, SpringLayout.WEST, dit); springLayout.putConstraint (SpringLayout.NORTH, animalComboBox, 0, SpringLayout.NORTH, animalLabel); // lijst springLayout.putConstraint (SpringLayout.WEST, listPanel, 0, SpringLayout.WEST, animalLabel); springLayout.putConstraint (SpringLayout.EAST, listPanel, -10, SpringLayout.EAST, dit); // een kleine ruimte op de rechterkant springLayout.putConstraint (SpringLayout.NORTH, listPanel, 15, SpringLayout.SOUTH, animalLabel); springLayout.putConstraint (SpringLayout.SOUTH, listPanel, -10, SpringLayout.SOUTH, dit); // een kleine ruimte bij de bodem } beschermde nietige resetList () { stringArray koord [] [] = composeList (); DefaultTableModel dtm = (DefaultTableModel) myTable.getModel (); dtm.setDataVector (stringArray, nieuw Voorwerp [] {„Plant/Dier“}); } privé composeList van het Koord [] [] () { returnArray koord [] [] = nieuw Koord [2] [1]; returnArray [0] [0] = (Koord) plantComboBox.getSelectedItem (); returnArray [1] [0] = (Koord) animalComboBox.getSelectedItem (); returnArray terugkeer; } openbaar getPlant Koord () { terugkeer (Koord) plantComboBox.getSelectedItem (); } openbaar getAnimal Koord () { terugkeer (Koord) animalComboBox.getSelectedItem (); } openbaar Koord getTitle () { de „dierlijke Lijst van de Plant“ van de terugkeer; } } het meest tableTest pakket; de invoer java.awt.event.WindowAdapter; de invoer java.awt.event.WindowEvent; de invoer java.beans.PropertyChangeEvent; de invoer java.beans.PropertyChangeListener; de invoer javax.swing.JFrame; de invoer javax.swing.JPanel; de invoer javax.swing.JScrollPane; de invoer javax.swing.JTabbedPane; de invoer javax.swing.UIManager; de openbare klasse MyTabbedPane breidt JTabbedPane instrumenten PropertyChangeListener uit { privé MyOptionsPanel myOptionsPanel; privé JPanel miscPanel; /** * aannemer */ MyTabbedPane () { setLayout (); } /** * plaats lay-out van lusjes */ privé nietige setLayout () { myOptionsPanel = nieuwe MyOptionsPanel (); this.addTab (myOptionsPanel.getTitle (), myOptionsPanel); miscPanel = nieuwe JPanel (); this.addTab („Misc“, miscPanel); } @Override openbare nietige propertyChange (gebeurtenis PropertyChangeEvent) { System.out.println („MyTabbedPane.propertyChange (): gebeurtenis: “ + event.getPropertyName ()); } /** * @return */ openbare MyOptionsPanel getMyOptionsPanel () { terugkeer myOptionsPanel; } /** * @return */ openbare JPanel getMiscPanel () { terugkeer miscPanel; } /** * * @param args */ openbare statische nietige leiding (Koord [] args) { probeer { UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName ()); } vangst (Uitzondering e) { e.printStackTrace (); } MyTabbedPane myTabbedPane = nieuwe MyTabbedPane (); definitief kader JFrame = nieuwe JFrame (); De rol van JScrollPane = nieuwe JScrollPane (myTabbedPane); scroll.getViewport () .setPreferredSize (myTabbedPane.getPreferredSize ()); frame.getContentPane () .add (rol); frame.setTitle („MyTabbedPane“); frame.addWindowListener (nieuwe WindowAdapter () { @Override het openbare nietige windowClosing (WindowEvent e) { int. breedte = frame.getWidth (); int. hoogte = frame.getHeight (); System.out.println („breedte x hoogte:: “ + breedte + „x“ + hoogte); } }); frame.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE); frame.setLocation (300, 200); frame.pack (); (waar) frame.setVisible; } } het meest tableTest pakket; de invoer java.awt.BorderLayout; de invoer javax.swing.JPanel; /** * paneel die van labels voorzien ruit bevatten */ de openbare klasse MyTabbedPanePanel breidt JPanel uit { beschermde MyTabbedPane myTabbedPane; /** * aannemer */ openbare MyTabbedPanePanel () { myTabbedPane = nieuwe MyTabbedPane (); layoutComponents (); } privé nietige layoutComponents () { setLayout (nieuwe BorderLayout ()); voeg toe (myTabbedPane, BorderLayout.CENTER); } openbaar getPlant Koord () { terugkeer myTabbedPane.getMyOptionsPanel () .getPlant (); } openbaar getAnimal Koord () { terugkeer myTabbedPane.getMyOptionsPanel () .getAnimal (); } openbare nietige resetList () { myTabbedPane.getMyOptionsPanel () .resetList (); } }

Antwoord : Grootte JScrollPane correct

u hebt het in het centrum van een BorderLayout die daarin die resized om al beschikbare ruimte in het ouderpaneel te vullen zal resulteren.

Als u wilt controleren hoeveel ruimte het toen neemt voeg een JPanel aan listPanel toe, en voeg uw scrollpane aan dat paneel toe. U kunt de lay-outmanager van het paneel dan gebruiken om de grootte van de rolruit te controleren
Andere oplossingen  
 
programming4us programming4us