Pergunta : Alguns problemas de Java com JToolBar, tamanhos da tecla, JPane, constantes etc.

Eu adiciono aqui o código para Colorizer.java. Supor para ser uma prática em setting-up um GUI. Não há nenhum intenton em fazer o código para um programa de pintura real. Em fazer esta prática self-made, eu começ stuck nos seguintes pontos:

(-) que eu não controlei conseguir todas as teclas ser o mesmo tamanho. 50x50 experimentados, mas eu não somos certos se aquele é o tamanho correto. Não trabalhou anyway.
(-) que o buttonrow é coloc errada no centro. Supor para ser em linha reta sob o menuline un o corner.
(-) que o drawingpanel na unidade central tido o tamanho errado. Deve completar o descanso do window.
(-) Using o VERTICAL constante não parece trabalhar. Eu pensei que eu tinha importado as bibliotecas correctly.
da classe (-) quando eu arrasto fora do JToolBar da unidade central, e então o fim ele, mim começ o seguinte erro:
Exception na linha “AWT-EventQueue-0” java.lang.IllegalArgumentException: o canno
t adiciona à disposição: os confinamentes devem ser um GridBagConstraint
no
de java.awt.GridBagLayout.addLayoutComponent (fonte de Unknown) no
de java.awt. Container.addImpl (fonte desconhecida) em java.awt.
de Container.add (fonte de Unknown) em javax.swing.plaf.basic.
de BasicToolBarUI$FrameListener.windowClosing (fonte do Unk
nown) no
de java.awt. Window.processWindowEvent (fonte de Unknown) no
de javax.swing.JDialog.processWindowEvent (fonte de Unknown) no
de java.awt. Window.processEvent (fonte de Unknown) em java.awt.
de Component.dispatchEventImpl (fonte desconhecida) em java.awt.
de Container.dispatchEventImpl (fonte desconhecida) em java.awt. Window.dispatchEventImpl (
da fonte de Unknown) em java.awt. O
de Component.dispatchEvent (fonte de Unknown) no
de java.awt.EventQueue.dispatchEvent (fonte de Unknown) no
de java.awt.EventDispatchThread.pumpOneEventForFilters (fonte de Unknown) no
de java.awt.EventDispatchThread.pumpEventsForFilter (fonte de Unknown) no
de java.awt.EventDispatchThread.pumpEventsForHierarchy (fonte de Unknown) no
de java.awt.EventDispatchThread.pumpEvents (fonte de Unknown) no
de java.awt.EventDispatchThread.pumpEvents (fonte de Unknown) no

After que de java.awt.EventDispatchThread.run (fonte de Unknown) o JToolBar é fechado, um novo estala acima onde se supor para ser coloc do começo (ver a descrição acima). o

Hope você gues pode ajudar me.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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.* " do class= " do id= " codeSnippet766229 do
           
class= do

Resposta : Alguns problemas de Java com JToolBar, tamanhos da tecla, JPane, constantes etc.

Pesaroso, é aqui o 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:
importação java.awt.BorderLayout;
importação java.awt. Cor;
importação java.awt. Dimensão;
importação java.awt.GridBagConstraints;
importação java.awt.GridBagLayout;
importação java.awt.GridLayout;
importação java.awt.event.ActionEvent;
importação java.awt.event.ActionListener;

importação javax.swing.BorderFactory;
importação javax.swing.JButton;
importação javax.swing.JDialog;
importação javax.swing.JFrame;
importação javax.swing.JLabel;
importação javax.swing.JMenu;
importação javax.swing.JMenuBar;
importação javax.swing.JMenuItem;
importação javax.swing.JPanel;
importação javax.swing.JTextField;
importação javax.swing.JToolBar;

a unidade central da classe estende JFrame {
	serialVersionUID longo final de estática confidencial = 1581133201499203821L;

	moduleGBConstraints de GridBagConstraints = GridBagConstraints novo ();

	editColorsDiag de EditColorsDialog = EditColorsDialog novo (este);

	unidade central pública (título da corda) {
		setTitle (título);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

		setLayout (GridBagLayout novo ());

		buildMenuLine ();
		buildButtonLine ();

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

	buildMenuLine vago confidencial () {
		mainMenu de JMenu = JMenu novo (“lima”);
		menuItem de JMenuItem = JMenuItem novo (“excepto”);
		Ouvinte de MenuListener = MenuListener novo ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (ouvinte);

		menuItem = JMenuItem novo (“carga”);
		mainMenu.add (menuItem);
		menuItem.addActionListener (ouvinte);

		menuItem = JMenuItem novo (“próximo”);
		mainMenu.add (menuItem);
		menuItem.addActionListener (ouvinte);

		menuItem = JMenuItem novo (“saída”);
		mainMenu.add (menuItem);
		menuItem.addActionListener (ouvinte);

		optionsMenu de JMenu = JMenu novo (“opções”);
		menuItem = JMenuItem novo (“editar cores”);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (ouvinte);

		menuItem = JMenuItem novo (“sobre”);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (ouvinte);

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

		setJMenuBar (menuLine);
	}

	buildButtonLine vago confidencial () {
		buttonRow de JToolBar = JToolBar novo (“cores”, 1); o VERTICAL de // não faz
		trabalho de //, using 1
		buttonRow.setLayout (GridLayout novo (5, 1, 4, 4));
		Ouvinte de ButtonListener = ButtonListener novo ();
		buttonx do int = 50;
		int = 30 buttony;
		Dimensão d = dimensão nova (buttonx, buttony);

		buttonRow.setPreferredSize (zero);

		Tecla de JButton = JButton novo (“amarelo”);
		button.setPreferredSize (d);
		buttonRow.add (tecla);
		button.addActionListener (ouvinte);

		tecla = JButton novo (“vermelho”);

		button.setPreferredSize (d);
		buttonRow.add (tecla);
		button.addActionListener (ouvinte);

		tecla = JButton novo (“azul”);
		button.setPreferredSize (d);
		buttonRow.add (tecla);
		button.addActionListener (ouvinte);

		tecla = JButton novo (“laranja”);
		button.setPreferredSize (d);
		buttonRow.add (tecla);
		button.addActionListener (ouvinte);

		tecla = JButton novo (“verde”);
		button.setPreferredSize (d);
		buttonRow.add (tecla);
		button.addActionListener (ouvinte);

		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;

		adicionar (buttonRow, moduleGBConstraints);
	}

	a classe confidencial MenuListener executa ActionListener {
		vácuo do público actionPerformed (evento de ActionEvent) {
			itemName da corda = event.getActionCommand ();
			System.out.println (“você empurrou o artigo de menu nomeado \ "" + itemName
					+ “\”. .");
			se (== “saída” do itemName) {
				System.out.println (“retirando. .");
				dispor ();
				System.exit (0);
			} mais se (o == do itemName “edita cores”) {
				owDialog de editColorsDiag.sh ();
			}
		}
	}

	a classe confidencial ButtonListener executa ActionListener {
		vácuo do público actionPerformed (evento de ActionEvent) {
			buttonName da corda = event.getActionCommand ();
			System.out.println (“você empurrou a tecla nomeada \ "" + buttonName
					+ “\”. .");
		}
	}

	@SuppressWarnings (“série”)
	a classe confidencial DrawingPanel estende JPanel {
		DrawingPanel público () {
			adicionar (JTextField novo (do “janela desenho”));
			adicionar (JTextField novo (“- teste”));
		}
	}
}

@SuppressWarnings (“série”)
a classe EditColorsDialog estende JDialog {
	exitButton de JButton = JButton novo (“próximo”);
	Ouvinte de ButtonListener = ButtonListener novo ();

	EditColorsDialog público (pai de JFrame) {
		super (o pai, “edita as cores”, verdadeiras);
		adicionar (JLabel novo (a “placa para editar colore”), BorderLayout.NORTH);
		adicionar (JLabel novo (), BorderLayout.CENTER);
		adicionar (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (ouvinte);
		setSize (200, 300);
		setResizable (falso);
	}

	showDialog vago do público () {
		setVisible (verdadeiro);
	}

	a classe confidencial ButtonListener executa ActionListener {
		vácuo do público actionPerformed (evento de ActionEvent) {
			buttonName da corda = event.getActionCommand ();
			se (== do buttonName “próximo”) {
				setVisible (falso);
			}
		}
	}
}

classe pública Colorizer {
	vácuo público da estática principal (args da corda []) {
		newFrame da unidade central = unidade central nova (“Colorizer”);
		newFrame.setVisible (verdadeiro);
		newFrame.setSize (300, 400);
		newFrame.setResizable (falso);
	}
}
Outras soluções  
 
programming4us programming4us