Cuestión : Algunos problemas de Java con JToolBar, tamaños del botón, JPane, los constantes etc.

Agrego aquí el código para Colorizer.java. Se supone para ser una práctica en la determinación de un GUI. No hay intenton en la fabricación del código para un programa de pintura verdadero. En hacer esta hecho a sí misma práctica, conseguí stuck en los puntos siguientes:

(-) que no manejé conseguir todos los botones para ser los mismos tamaños. 50x50 probados, sino yo no estamos seguros si ése es el tamaño correcto. No trabajó anyway.
(-) que el buttonrow se pone incorrecto en el centro. Se supone para ser colocado derecho debajo del menuline la O.N.U el corner.
(-) que el drawingpanel en la unidad central tiene tamaño incorrecto. Debe completar el resto del window.
(-) usar la VERTICAL constante no parece trabajar. Pensé que había importado las bibliotecas correctly.
de la clase (-) cuando arrastro del JToolBar de la unidad central, y entonces cierre él, yo consigo el error siguiente:
Exception en el hilo de rosca “AWT-EventQueue-0” java.lang.IllegalArgumentException: el canno
t agrega a la disposición: los apremios deben ser un GridBagConstraint
en el
de java.awt.GridBagLayout.addLayoutComponent (fuente de Unknown) en el
de java.awt. Container.addImpl (fuente desconocida) en java.awt.
de Container.add (fuente de Unknown) en javax.swing.plaf.basic.
de BasicToolBarUI$FrameListener.windowClosing (fuente del Unk
nown) en el
de java.awt. Window.processWindowEvent (fuente de Unknown) en el
de javax.swing.JDialog.processWindowEvent (fuente de Unknown) en el
de java.awt. Window.processEvent (fuente de Unknown) en java.awt.
de Component.dispatchEventImpl (fuente desconocida) en java.awt.
de Container.dispatchEventImpl (fuente desconocida) en java.awt. Window.dispatchEventImpl (
de la fuente de Unknown) en java.awt. El
de Component.dispatchEvent (fuente de Unknown) en el
de java.awt.EventQueue.dispatchEvent (fuente de Unknown) en el
de java.awt.EventDispatchThread.pumpOneEventForFilters (fuente de Unknown) en el
de java.awt.EventDispatchThread.pumpEventsForFilter (fuente de Unknown) en el
de java.awt.EventDispatchThread.pumpEventsForHierarchy (fuente de Unknown) en el
de java.awt.EventDispatchThread.pumpEvents (fuente de Unknown) en el
de java.awt.EventDispatchThread.pumpEvents (fuente de Unknown) en el

After de java.awt.EventDispatchThread.run (fuente de Unknown) que el JToolBar es cerrado, un nuevo surge donde se supone para ser colocado del comienzo (véase la descripción arriba). el

Hope usted los gues puede ayudar a me.
class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
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 notpretty javax.swing.* " del class= " del id= " codeSnippet766229 del
           
class= del

Respuesta : Algunos problemas de Java con JToolBar, tamaños del botón, JPane, los constantes etc.

, Aquí lo siente el código:)
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:
importación java.awt.BorderLayout;
importación java.awt. Color;
importación java.awt. Dimensión;
importación java.awt.GridBagConstraints;
importación java.awt.GridBagLayout;
importación java.awt.GridLayout;
importación java.awt.event.ActionEvent;
importación java.awt.event.ActionListener;

importación javax.swing.BorderFactory;
importación javax.swing.JButton;
importación javax.swing.JDialog;
importación javax.swing.JFrame;
importación javax.swing.JLabel;
importación javax.swing.JMenu;
importación javax.swing.JMenuBar;
importación javax.swing.JMenuItem;
importación javax.swing.JPanel;
importación javax.swing.JTextField;
importación javax.swing.JToolBar;

la unidad central de la clase amplía JFrame {
	serialVersionUID largo final estático privado = 1581133201499203821L;

	moduleGBConstraints de GridBagConstraints = nuevo GridBagConstraints ();

	editColorsDiag de EditColorsDialog = nuevo EditColorsDialog (éste);

	unidad central pública (título de la secuencia) {
		setTitle (título);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

		setLayout (nuevo GridBagLayout ());

		buildMenuLine ();
		buildButtonLine ();

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

	buildMenuLine vacío privado () {
		mainMenu de JMenu = nuevo JMenu (“archivo”);
		menuItem de JMenuItem = nuevo JMenuItem (“excepto”);
		Oyente de MenuListener = nuevo MenuListener ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (oyente);

		menuItem = nuevo JMenuItem (“carga”);
		mainMenu.add (menuItem);
		menuItem.addActionListener (oyente);

		menuItem = nuevo JMenuItem (“cercano”);
		mainMenu.add (menuItem);
		menuItem.addActionListener (oyente);

		menuItem = nuevo JMenuItem (“salida”);
		mainMenu.add (menuItem);
		menuItem.addActionListener (oyente);

		optionsMenu de JMenu = nuevo JMenu (“opciones”);
		menuItem = nuevo JMenuItem (“corregir los colores”);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (oyente);

		menuItem = nuevo JMenuItem (“sobre”);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (oyente);

		menuLine de JMenuBar = nuevo JMenuBar ();
		menuLine.add (mainMenu);
		menuLine.add (optionsMenu);

		setJMenuBar (menuLine);
	}

	buildButtonLine vacío privado () {
		buttonRow de JToolBar = nuevo JToolBar (“colores”, 1); la VERTICAL de // no hace
		trabajo de //, usar 1
		buttonRow.setLayout (nuevo GridLayout (5, 1, 4, 4));
		Oyente de ButtonListener = nuevo ButtonListener ();
		buttonx de la internacional = 50;
		internacional = 30 buttony;
		Dimensión d = nueva dimensión (buttonx, buttony);

		buttonRow.setPreferredSize (falta de información);

		Botón de JButton = nuevo JButton (“amarillo”);
		button.setPreferredSize (d);
		buttonRow.add (botón);
		button.addActionListener (oyente);

		botón = nuevo JButton (“rojo”);

		button.setPreferredSize (d);
		buttonRow.add (botón);
		button.addActionListener (oyente);

		botón = nuevo JButton (“azul”);
		button.setPreferredSize (d);
		buttonRow.add (botón);
		button.addActionListener (oyente);

		botón = nuevo JButton (“naranja”);
		button.setPreferredSize (d);
		buttonRow.add (botón);
		button.addActionListener (oyente);

		botón = nuevo JButton (“verde”);
		button.setPreferredSize (d);
		buttonRow.add (botón);
		button.addActionListener (oyente);

		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;

		agregar (buttonRow, moduleGBConstraints);
	}

	la clase privada MenuListener ejecuta ActionListener {
		vacío del público actionPerformed (acontecimiento de ActionEvent) {
			itemName de la secuencia = event.getActionCommand ();
			System.out.println (“usted empujó el artículo de menú nombrado \ "" + itemName
					+ “\”. .");
			si (== “salida” del itemName) {
				System.out.println (“dando salida a. .");
				disponen ();
				System.exit (0);
			} si (el == del itemName “corrige colores”) {
				owDialog de editColorsDiag.sh ();
			}
		}
	}

	la clase privada ButtonListener ejecuta ActionListener {
		vacío del público actionPerformed (acontecimiento de ActionEvent) {
			buttonName de la secuencia = event.getActionCommand ();
			System.out.println (“usted empujó el botón nombrado \ "" + buttonName
					+ “\”. .");
		}
	}

	@SuppressWarnings (“cuento por entregas”)
	la clase privada DrawingPanel amplía JPanel {
		DrawingPanel público () {
			agregar (nuevo JTextField (“ventana del dibujo”));
			agregar (nuevo JTextField (“- prueba”));
		}
	}
}

@SuppressWarnings (“cuento por entregas”)
la clase EditColorsDialog amplía JDialog {
	exitButton de JButton = nuevo JButton (“cercano”);
	Oyente de ButtonListener = nuevo ButtonListener ();

	EditColorsDialog público (padre de JFrame) {
		estupendo (el padre, “corrige los colores”, verdades);
		agregar (nuevo JLabel (el “cristal para corregir colorea”), BorderLayout.NORTH);
		agregar (nuevo JLabel (), BorderLayout.CENTER);
		agregar (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (oyente);
		setSize (200, 300);
		setResizable (falso);
	}

	showDialog vacío del público () {
		setVisible (verdad);
	}

	la clase privada ButtonListener ejecuta ActionListener {
		vacío del público actionPerformed (acontecimiento de ActionEvent) {
			buttonName de la secuencia = event.getActionCommand ();
			si (== del buttonName “cercano”) {
				setVisible (falso);
			}
		}
	}
}

clase pública Colorizer {
	vacío público de los parásitos atmosféricos principal args (de la secuencia []) {
		newFrame de la unidad central = nueva unidad central (“Colorizer”);
		newFrame.setVisible (verdad);
		newFrame.setSize (300, 400);
		newFrame.setResizable (falso);
	}
}
Otras soluciones  
 
programming4us programming4us