Vraag : Sommige problemen van Java met JToolBar, knoopgrootte, JPane, constanten enz.

Ik voeg hier de code voor Colorizer.java toe. Het is verondersteld een praktijk bij de vestiging te zijn een GUI. Er zijn geen intenton bij het maken van code voor een echt verfprogramma. Bij het doen van deze zelf-gemaakte praktijk, werd ik geplakt op de volgende punten:

(-) ik slaagde niet erin om alle knopen ertoe te brengen om de zelfde grootte te zijn. Geprobeerde 50x50, maar ik ben niet zeker als dat de correcte grootte is. Het werkte geen anyway.
(-) Buttonrow wordt geplaatst verkeerd in het centrum. Het is verondersteld om rechtstreeks onder de menulineV.N. hoogste linkercorner.
(-) worden geplaatst Drawingpanel in de centrale verwerkingseenheid heeft verkeerde grootte. Het zou de rest van window.
(-) moeten invullen Gebruikend de constante VERTICAAL schijnt niet te werken. Ik dacht ik ingevoerd=had= de klassenbibliotheken correctly.
(-) Wanneer ik van JToolBar van de centrale verwerkingseenheid, sleep en dan het sluit, krijg ik de volgende fout:
Exception in draad „aWT-EventQueue-0“ java.lang.IllegalArgumentException: canno
t aan lay-out toe: de beperkingen moeten een GridBagConstraint
bedragen java.awt.GridBagLayout.addLayoutComponent (de Bron van Unknown)
bij java.awt. Container.addImpl (Onbekende Bron)
bij java.awt. Container.add (de Bron van Unknown)
bij javax.swing.plaf.basic. BasicToolBarUI$FrameListener.windowClosing (Bron Unk
nown)
bij java.awt. Window.processWindowEvent (de Bron van Unknown)
bij javax.swing.JDialog.processWindowEvent (/> Bron Unknown bij java.awt. Window.processEvent (/> Bron Unknown bij java.awt. Component.dispatchEventImpl (Onbekende Bron)
bij java.awt. Container.dispatchEventImpl (Onbekende Bron)
bij java.awt. Window.dispatchEventImpl (De Bron van Unknown)
bij java.awt. Component.dispatchEvent (de Bron van Unknown)
bij java.awt.EventQueue.dispatchEvent (de Bron van Unknown)
bij java.awt.EventDispatchThread.pumpOneEventForFilters (de Bron van Unknown)
bij java.awt.EventDispatchThread.pumpEventsForFilter (/> Bron Unknown bij java.awt.EventDispatchThread.pumpEventsForHierarchy (de Bron van Unknown)
bij java.awt.EventDispatchThread.pumpEvents (/>n Bron Unknow bij java.awt.EventDispatchThread.pumpEvents (/>n Bron Unknow bij java.awt.EventDispatchThread.run (de Bron van Unknown)

After JToolBar is gesloten, nieuwe op duikt waar het verondersteld om is vanaf het begin worden geplaatst (zie beschrijving boven).

Hope u gues me.
kunt helpen
" 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:
import javax.swing.*; //JFrame, JButton, JPanel, JTextField
de invoer javax.swing.SwingConstants; //Gets de constanten, als VERTICAAL en HORIZONTAAL
de invoer java.awt.*; //Color, GridBagLayout, GridBagConstraints, BorderLayout
de invoer java.awt.event.*; //ActionListener en de rest
de invoer java.awt. Afmeting;

de klassen Centrale verwerkingseenheid breidt JFrame uit {
	EditColorsDialog editColorsDiag = nieuwe EditColorsDialog (dit);
	
	openbare Centrale verwerkingseenheid (de titel van het Koord) {
		setTitle (titel);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		
		setLayout (nieuwe GridBagLayout ());
		
		buildMenuLine ();
		buildButtonLine ();
		
		GridBagConstraints c = nieuwe GridBagConstraints ();
		c.gridx = 1;
		c.gridy = 1;
		c.gridheight = 6;
		
		DrawingPanel dPanel = nieuwe DrawingPanel ();
		dPanel.setBorder (BorderFactory.createLineBorder (Color.black));
		voeg toe (dPanel, c);
	}
	privé nietige buildMenuLine () {
		mainMenu van JMenu = nieuwe JMenu („Dossier“);
		JMenuItem menuItem = nieuwe JMenuItem („sparen“);
		De luisteraar van MenuListener = nieuwe MenuListener ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);
		
		menuItem = nieuwe JMenuItem („Lading“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);
		
		menuItem = nieuwe JMenuItem („Dicht“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);
		
		menuItem = nieuwe JMenuItem („Uitgang“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);
		
		optionsMenu van JMenu = nieuwe JMenu („Opties“);
		menuItem = nieuwe JMenuItem („geef Kleuren uit“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);
		
		menuItem = nieuwe JMenuItem („over“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);
		
		menuLine van JMenuBar = nieuwe JMenuBar ();
		menuLine.add (mainMenu);
		menuLine.add (optionsMenu);
		
		setJMenuBar (menuLine);
	}
	privé nietige buildButtonLine () {
		JToolBar buttonRow = nieuwe JToolBar („Kleuren“, 1); //VERTICAL werkt niet, gebruikend 1
		De luisteraar van ButtonListener = nieuwe ButtonListener ();
		int. buttonx = 50;
		buttony int. = 50;
		Afmeting D = nieuwe Afmeting (buttonx, buttony);
		
		De knoop van JButton = nieuwe JButton („Geel“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);
		
		knoop = nieuwe JButton („Rood“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);
		
		knoop = nieuwe JButton („Blauw“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);
		
		knoop = nieuwe JButton („Sinaasappel“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);
		
		knoop = nieuwe JButton („Groen“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);
		
		GridBagConstraints c = nieuwe GridBagConstraints ();
		c.fill = GridBagConstraints.VERTICAL;
		c.gridx = 0;
		c.gridy = 1;
		c.gridheight = 6;

		voeg toe (buttonRow, c);
	}
	de privé instrumenten ActionListener van klassenMenuListener {
		de openbare leegte actionPerformed (gebeurtenis ActionEvent) {
			Koord itemName = event.getActionCommand ();
			System.out.println („u duwde het menupunt genoemd \ "" + itemName +“ \“. „);
			als (itemName == „Uitgang“) {
				System.out.println („Weggaand. “);
				schik ();
				System.exit (0);
			} anders als (itemName geeft == „Kleuren uit“) {
				editColorsDiag.sh owDialog ();
			}
		}
	}
	de privé instrumenten ActionListener van klassenButtonListener {
		de openbare leegte actionPerformed (gebeurtenis ActionEvent) {
			Koord buttonName = event.getActionCommand ();
			System.out.println („u duwde de knoop genoemd \ "" + buttonName +“ \“. „);
		}
	}
	de privé klasse DrawingPanel breidt JPanel uit {
		openbare DrawingPanel () {
			voeg toe (nieuwe JTextField (het „Venster van de Tekening“));
			voeg toe (nieuwe JTextField („- Testend“));
		}
	}
}
de klasse EditColorsDialog breidt JDialog uit {
	JButton exitButton = nieuwe JButton („Dicht“);
	De luisteraar van ButtonListener = nieuwe ButtonListener ();
	
	openbare EditColorsDialog (ouder JFrame) {
		super (de ouder, „geeft Kleuren uit“, waar);
		voeg toe (nieuwe JLabel („Ruit voor het uitgeven van kleuren“), BorderLayout.NORTH);
		voeg toe (nieuwe JLabel (), BorderLayout.CENTER);
		voeg toe (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (luisteraar);
		setSize (200.300);
		setResizable (vals);
	}
	openbare nietige showDialog () {
		setVisible (waar);
	}
	de privé instrumenten ActionListener van klassenButtonListener {
		de openbare leegte actionPerformed (gebeurtenis ActionEvent) {
			Koord buttonName = event.getActionCommand ();
			als (buttonName „Dichte“ ==) {
				setVisible (vals);
			}
		}
	}
}

klasse Colorizer {
	openbare statische nietige leiding (Koord [] args) {
		Centrale verwerkingseenheid newFrame = nieuwe Centrale verwerkingseenheid („Colorizer“);
		(waar) newFrame.setVisible;
		newFrame.setSize (300.400);
		(vals) newFrame.setResizable;
	}
}

Antwoord : Sommige problemen van Java met JToolBar, knoopgrootte, JPane, constanten enz.

Droevig, hier is de code:)
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:
de invoer java.awt.BorderLayout;
de invoer java.awt. Kleur;
de invoer java.awt. Afmeting;
de invoer java.awt.GridBagConstraints;
de invoer java.awt.GridBagLayout;
de invoer java.awt.GridLayout;
de invoer java.awt.event.ActionEvent;
de invoer java.awt.event.ActionListener;

de invoer javax.swing.BorderFactory;
de invoer javax.swing.JButton;
de invoer javax.swing.JDialog;
de invoer javax.swing.JFrame;
de invoer javax.swing.JLabel;
de invoer javax.swing.JMenu;
de invoer javax.swing.JMenuBar;
de invoer javax.swing.JMenuItem;
de invoer javax.swing.JPanel;
de invoer javax.swing.JTextField;
de invoer javax.swing.JToolBar;

de klassen Centrale verwerkingseenheid breidt JFrame uit {
	privé statische definitieve lange serialVersionUID = 1581133201499203821L;

	GridBagConstraints moduleGBConstraints = nieuwe GridBagConstraints ();

	EditColorsDialog editColorsDiag = nieuwe EditColorsDialog (dit);

	openbare Centrale verwerkingseenheid (de titel van het Koord) {
		setTitle (titel);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

		setLayout (nieuwe GridBagLayout ());

		buildMenuLine ();
		buildButtonLine ();

		DrawingPanel dPanel = nieuwe DrawingPanel ();
		dPanel.setBorder (BorderFactory.createLineBorder (Color.black));
		moduleGBConstraints.gridx++;
		moduleGBConstraints.gridheight = 1;
		moduleGBConstraints.weightx = 0.7;
		moduleGBConstraints.weighty = 0;
		moduleGBConstraints.gridheight = 6;
		voeg toe (dPanel, moduleGBConstraints);
	}

	privé nietige buildMenuLine () {
		mainMenu van JMenu = nieuwe JMenu („Dossier“);
		JMenuItem menuItem = nieuwe JMenuItem („sparen“);
		De luisteraar van MenuListener = nieuwe MenuListener ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);

		menuItem = nieuwe JMenuItem („Lading“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);

		menuItem = nieuwe JMenuItem („Dicht“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);

		menuItem = nieuwe JMenuItem („Uitgang“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);

		optionsMenu van JMenu = nieuwe JMenu („Opties“);
		menuItem = nieuwe JMenuItem („geef Kleuren uit“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);

		menuItem = nieuwe JMenuItem („over“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (luisteraar);

		menuLine van JMenuBar = nieuwe JMenuBar ();
		menuLine.add (mainMenu);
		menuLine.add (optionsMenu);

		setJMenuBar (menuLine);
	}

	privé nietige buildButtonLine () {
		JToolBar buttonRow = nieuwe JToolBar („Kleuren“, 1); // de VERTICAAL niet
		// het werk, die 1 gebruiken
		buttonRow.setLayout (nieuwe GridLayout (5, 1, 4, 4));
		De luisteraar van ButtonListener = nieuwe ButtonListener ();
		int. buttonx = 50;
		buttony int. = 30;
		Afmeting D = nieuwe Afmeting (buttonx, buttony);

		(ongeldig) buttonRow.setPreferredSize;

		De knoop van JButton = nieuwe JButton („Geel“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);

		knoop = nieuwe JButton („Rood“);

		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);

		knoop = nieuwe JButton („Blauw“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);

		knoop = nieuwe JButton („Sinaasappel“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);

		knoop = nieuwe JButton („Groen“);
		button.setPreferredSize (D);
		buttonRow.add (knoop);
		button.addActionListener (luisteraar);

		moduleGBConstraints.fill = GridBagConstraints.VERTICAL;
		moduleGBConstraints.anchor = GridBagConstraints.FIRST_LINE_START;
		moduleGBConstraints.gridx = 0;
		moduleGBConstraints.gridy = 1;
		moduleGBConstraints.gridheight = 1;
		moduleGBConstraints.weightx = 0.3;
		moduleGBConstraints.weighty = 0;
		moduleGBConstraints.gridheight = 6;

		voeg toe (buttonRow, moduleGBConstraints);
	}

	de privé instrumenten ActionListener van klassenMenuListener {
		de openbare leegte actionPerformed (gebeurtenis ActionEvent) {
			Koord itemName = event.getActionCommand ();
			System.out.println („u duwde het menupunt genoemd \ "" + itemName
					+ „\“. „);
			als (itemName == „Uitgang“) {
				System.out.println („Weggaand. “);
				schik ();
				System.exit (0);
			} anders als (itemName geeft == „Kleuren uit“) {
				editColorsDiag.sh owDialog ();
			}
		}
	}

	de privé instrumenten ActionListener van klassenButtonListener {
		de openbare leegte actionPerformed (gebeurtenis ActionEvent) {
			Koord buttonName = event.getActionCommand ();
			System.out.println („u duwde de knoop genoemd \ "" + buttonName
					+ „\“. „);
		}
	}

	@SuppressWarnings („periodiek“)
	de privé klasse DrawingPanel breidt JPanel uit {
		openbare DrawingPanel () {
			voeg toe (nieuwe JTextField (het „Venster van de Tekening“));
			voeg toe (nieuwe JTextField („- Testend“));
		}
	}
}

@SuppressWarnings („periodiek“)
de klasse EditColorsDialog breidt JDialog uit {
	JButton exitButton = nieuwe JButton („Dicht“);
	De luisteraar van ButtonListener = nieuwe ButtonListener ();

	openbare EditColorsDialog (ouder JFrame) {
		super (de ouder, „geeft Kleuren uit“, waar);
		voeg toe (nieuwe JLabel („Ruit voor het uitgeven van kleuren“), BorderLayout.NORTH);
		voeg toe (nieuwe JLabel (), BorderLayout.CENTER);
		voeg toe (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (luisteraar);
		setSize (200, 300);
		setResizable (vals);
	}

	openbare nietige showDialog () {
		setVisible (waar);
	}

	de privé instrumenten ActionListener van klassenButtonListener {
		de openbare leegte actionPerformed (gebeurtenis ActionEvent) {
			Koord buttonName = event.getActionCommand ();
			als (buttonName „Dichte“ ==) {
				setVisible (vals);
			}
		}
	}
}

openbare klasse Colorizer {
	openbare statische nietige leiding (Koord [] args) {
		Centrale verwerkingseenheid newFrame = nieuwe Centrale verwerkingseenheid („Colorizer“);
		(waar) newFrame.setVisible;
		newFrame.setSize (300, 400);
		(vals) newFrame.setResizable;
	}
}
Andere oplossingen  
 
programming4us programming4us