Frage : Größe JScrollPane richtig

In diesem Beispiel ist das JScrollPane zu groß. Ich habe einige Weisen zum sizeit versucht, aber es nicht recht erhalten kann. Die „Größe sehen???“ Anmerkung in der MyOptionsPanel Kategorie.

To lassen diese Anwendung, laufen lassen die Hauptleitung in MyTabbedPane
laufen
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:
6:
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:
package tableTest;

Import java.awt.BorderLayout;
Import java.awt. Maß;

Import javax.swing.JComboBox;
Import javax.swing.JLabel;
Import javax.swing.JPanel;
Import javax.swing.JScrollPane;
Import javax.swing.JTable;
Import javax.swing.SpringLayout;
Import javax.swing.table.DefaultTableModel;

allgemeine Kategorie MyOptionsPanel verlängert JPanel {

	privates JLabel plantLabel;
	privates JComboBox plantComboBox;

	privates JLabel animalLabel;
	privates JComboBox animalComboBox;

	privates JPanel listPanel;
	privates JTable myTable;
	
	privates Schnur [] columnHeader = {„Anlage/Tier“};
	
	/**
	 * Erbauer
	 *
	allgemeines MyOptionsPanel () {

		layoutComponents ();

	}

	/**
	 * Planbestandteile
	 *
	private leere layoutComponents () {

		//-Anlage
		plantLabel = neues JLabel („Anlage“);
		this.add (plantLabel);

		Schnur [] plantTypes = {„Gras“, „forb“, „Blume“, „Strauch“, „Baum“};
		plantComboBox = neues JComboBox (plantTypes);
		plantComboBox.setSelectedItem („Gras“);
		this.add (plantComboBox);

		//-Tier
		animalLabel = neues JLabel („Tier“);
		this.add (animalLabel);

		Schnur [] animalTypes = {„Hund“, „Katze“, „Pferd“, „Schafe“, „Kuh“};
		animalComboBox = neues JComboBox (animalTypes);
		animalComboBox.setSelectedItem („Hund“);
		this.add (animalComboBox);


		//-Liste
		listPanel = neues JPanel (neues BorderLayout ());

		myTable = neues JTable ();
		DefaultTableModel defaultTableModel = neues DefaultTableModel ();
		Aufreihen [] [] stringArray = composeList ();

		defaultTableModel.setDataVector (stringArray, columnHeader);
		myTable.setModel (defaultTableModel);

		//myTable.setPreferredScrollableViewportSize (myTable.getPreferredSize ());
		JScrollPane scrollPane = neues JScrollPane (myTable);
		listPanel.add (scrollPane);

		this.add (listPanel);

		//-Größe???

		Maß plantLabelDimension = plantLabel.getPreferredSize ();
		Maß animalDimension = animalLabel.getPreferredSize ();
		Maß myListDimension = myTable.getPreferredSize ();
		scrollPaneDimension = scrollPane.getViewport () .getPreferredSize bemessen ();
		listPanellDimension = listPanel.getPreferredSize bemessen ();
		thisDimension = this.getPreferredSize bemessen ();

		//System.out.println („plantLabelDimension Breite: Höhe: “ + plantLabelDimension.width + „: “ + plantLabelDimension.height);
		//System.out.println („animalabelDimension Breite: Höhe: “ + animalDimension.width + „: “ + animalDimension.height);
		//System.out.println („myList Breite: Höhe: “ + myListDimension.width + „: “ + myListDimension.height);
		//System.out.println („scrollPaneDimension Breite: Höhe: “ + scrollPaneDimension.width + „: “ + scrollPaneDimension.height);
		//System.out.println („listPanellDimension Breite: Höhe: “ + listPanellDimension.width + „: “ + listPanellDimension.height);

		int-Breite = listPanellDimension.width;
		myTable.setPreferredScrollableViewportSize (myTable.getSize ());
		//myList.setFillsViewportHeight (zutreffend);
		scrollPane.getViewport () .setPreferredSize (myTable.getPreferredSize ());
		scrollPane.getViewport () .setMinimumSize (myTable.getPreferredSize ());
		scrollPane.getViewport () .setMaximumSize (myTable.getPreferredSize ());

		int-Höhe = plantLabelDimension.height + animalDimension.height + scrollPaneDimension.height;
		thisDimension.setSize (Breite, Höhe);
		//System.out.println („thisDimension Breite: Höhe: “ + thisDimension.width + „: “ + thisDimension.height);

		this.setPreferredSize (thisDimension);

		SpringLayout springLayout = neues SpringLayout ();
		this.setLayout (springLayout);

		// justieren Begrenzungen (IE-Positionsbestandteile)

		//-Anlage
		springLayout.putConstraint (SpringLayout.WEST, plantLabel, 10, SpringLayout.WEST, dieses);
		springLayout.putConstraint (SpringLayout.NORTH, plantLabel, 15, SpringLayout.NORTH, dieses);

		springLayout.putConstraint (SpringLayout.WEST, plantComboBox, 110, SpringLayout.WEST, dieses);
		springLayout.putConstraint (SpringLayout.NORTH, plantComboBox, 0, SpringLayout.NORTH, plantLabel);

		//-Tier
		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, dieses);
		springLayout.putConstraint (SpringLayout.NORTH, animalComboBox, 0, SpringLayout.NORTH, animalLabel);

		//-Liste
		springLayout.putConstraint (SpringLayout.WEST, listPanel, 0, SpringLayout.WEST, animalLabel);
		springLayout.putConstraint (SpringLayout.EAST, listPanel, -10, SpringLayout.EAST, dieses); // ein wenig Raum auf der rechten Seite
		springLayout.putConstraint (SpringLayout.NORTH, listPanel, 15, SpringLayout.SOUTH, animalLabel);
		springLayout.putConstraint (SpringLayout.SOUTH, listPanel, -10, SpringLayout.SOUTH, dieses);	 // ein wenig Raum an der Unterseite
	}


	geschütztes leeres resetList () {

		Aufreihen [] [] stringArray = composeList ();
		DefaultTableModel dtm = (DefaultTableModel) myTable.getModel ();
		dtm.setDataVector (stringArray, neues Gegenstand [] {„Anlage/Tier“});

	}

	privates Schnur [] [] composeList () {

		Aufreihen [] [] returnArray = neue Schnur [2] [1];
		returnArray [0] [0] = (Schnur) plantComboBox.getSelectedItem ();
		returnArray [1] [0] = (Schnur) animalComboBox.getSelectedItem ();

		RückholreturnArray;

	}

	allgemeine Schnur getPlant () {
		(Schnur) plantComboBox.getSelectedItem zurückbringen ();
	}

	allgemeine Schnur getAnimal () {
		(Schnur) animalComboBox.getSelectedItem zurückbringen ();
	}

	allgemeines Schnur getTitle () {
		„Betriebstierliste“ zurückbringen;
	}

}

--------

tableTest verpacken;

java.awt.event.WindowAdapter importieren;
java.awt.event.WindowEvent importieren;
java.beans.PropertyChangeEvent importieren;
java.beans.PropertyChangeListener importieren;

javax.swing.JFrame importieren;
javax.swing.JPanel importieren;
javax.swing.JScrollPane importieren;
javax.swing.JTabbedPane importieren;
javax.swing.UIManager importieren;

allgemeine Kategorie MyTabbedPane verlängert JTabbedPane Werkzeuge PropertyChangeListener {

	privates MyOptionsPanel myOptionsPanel;
	privates JPanel miscPanel;

	/**
	 * Erbauer
	 *
	MyTabbedPane () {

		setLayout ();

	}

	/** 
	 * gesetzter Plan der Vorsprünge
	 *
	privates leeres setLayout () {

		myOptionsPanel = neues MyOptionsPanel ();
		this.addTab (myOptionsPanel.getTitle (), myOptionsPanel);

		miscPanel = neues JPanel ();
		this.addTab („Verschieden“, miscPanel);

	}

	@Override
	Öffentlichkeit leeres propertyChange (PropertyChangeEvent Ereignis) {
		System.out.println („MyTabbedPane.propertyChange (): Ereignis: “ + event.getPropertyName ());
	}

	 /**
	 * @return
	 *
	allgemeines MyOptionsPanel getMyOptionsPanel () {
		RückholmyOptionsPanel;
	}

	/**
	 * @return
	 *
	allgemeines JPanel getMiscPanel () {
		RückholmiscPanel;
	}


	/**
	 * 
	 * @param args
	 *
	allgemeine Staticlücke hauptsächlich (Schnur [] args) {

		Versuch {
			UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName ());
		}
		Fang (Ausnahme e) {
			e.printStackTrace ();
		}

		MyTabbedPane myTabbedPane = neues MyTabbedPane ();

		abschließender JFrame Rahmen = neues JFrame ();

		JScrollPane Rolle = neues JScrollPane (myTabbedPane);
		scroll.getViewport () .setPreferredSize (myTabbedPane.getPreferredSize ());
		frame.getContentPane () .add (Rolle);

		frame.setTitle („MyTabbedPane“);
		frame.addWindowListener (neues WindowAdapter () {
			@Override
			Öffentlichkeit leeres windowClosing (WindowEvent e) {
				int-Breite = frame.getWidth ();
				int-Höhe = frame.getHeight ();
				System.out.println („Höhe der Breite x:: “ + Breite + „x“ + Höhe);
			}
		});

		frame.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
		frame.setLocation (300, 200);
		frame.pack ();
		frame.setVisible (zutreffend);
	}

}

--------

Paket tableTest;

Import java.awt.BorderLayout;

Import javax.swing.JPanel;

/**
 * Verkleidung, die mit Laschen versehene Scheibe enthält
 *
allgemeine Kategorie MyTabbedPanePanel verlängert JPanel {

	geschütztes MyTabbedPane myTabbedPane;


	/**
	 * Erbauer
	 *
	allgemeines MyTabbedPanePanel () {

		myTabbedPane = neues MyTabbedPane ();

		layoutComponents ();

	}

	private leere layoutComponents () {

		setLayout (neues BorderLayout ());

		hinzufügen (myTabbedPane, BorderLayout.CENTER);

	}

	allgemeine Schnur getPlant () {
		RückholmyTabbedPane.getMyOptionsPanel () .getPlant ();
	}

	allgemeine Schnur getAnimal () {
		RückholmyTabbedPane.getMyOptionsPanel () .getAnimal ();
	}

	Öffentlichkeit leeres resetList () {
		myTabbedPane.getMyOptionsPanel () .resetList ();
	}

}

Antwort : Größe JScrollPane richtig

Sie haben es in der Mitte von einem BorderLayout, das sie die Größe neu bestimmend, um den ganzen vorhandenen Raum in der Elternteilverkleidung zu füllen ergibt.

Wenn Sie steuern möchten, wie viel Raum er dann nimmt, ein JPanel listPanel hinzufügen, und Ihr scrollpane dieser Verkleidung hinzufügen. Sie können den Planmanager der Verkleidung dann verwenden, um die Größe der Rollescheibe zu steuern
Weitere Lösungen  
 
programming4us programming4us