Questione : Alcuni problemi del Java con JToolBar, i formati del tasto, JPane, le costanti ecc.

Aggiungo qui il codice per Colorizer.java. È supposto per essere una pratica sull'installazione del GUI. Non ci è intenton sulla fabbricazione del codice per un programma di vernice reale. Nel fare questa pratica fatta da sé, ho ottenuto stuck sui seguenti punti:

(-) che non sono riuscito a convincere tutti i tasti per essere lo stessa taglia. 50x50 provati, ma io non sono sicuri se quello è il formato corretto. Non ha funzionato anyway.
(-) che il buttonrow è disposto scorrettamente nel centro. È supposto per essere disposto diritto sotto il menuline ONU il corner.
(-) che il drawingpanel nell'elaboratore centrale ha formato errato. Dovrebbe compilare il resto del window.
(-) Using il VERTICALE costante non sembra funzionare. Ho pensato che avessi importato le biblioteche correctly.
del codice categoria (-) quando trascino fuori dal JToolBar dall'elaboratore centrale ed allora la fine esso, io ottenessi il seguente errore:
Exception in filetto “AWT-EventQueue-0„ java.lang.IllegalArgumentException: il canno
t aggiunge alla disposizione: i vincoli devono essere un GridBagConstraint
al
di java.awt.GridBagLayout.addLayoutComponent (fonte di Unknown) al
di java.awt. Container.addImpl (fonte sconosciuta) a java.awt.
di Container.add (fonte di Unknown) a javax.swing.plaf.basic.
di BasicToolBarUI$FrameListener.windowClosing (fonte del Unk
nown) al
di java.awt. Window.processWindowEvent (fonte di Unknown) al
di javax.swing.JDialog.processWindowEvent (fonte di Unknown) al
di java.awt. Window.processEvent (fonte di Unknown) a java.awt.
di Component.dispatchEventImpl (fonte sconosciuta) a java.awt.
di Container.dispatchEventImpl (fonte sconosciuta) a java.awt. Window.dispatchEventImpl (
di fonte di Unknown) a java.awt. Il
di Component.dispatchEvent (fonte di Unknown) al
di java.awt.EventQueue.dispatchEvent (fonte di Unknown) al
di java.awt.EventDispatchThread.pumpOneEventForFilters (fonte di Unknown) al
di java.awt.EventDispatchThread.pumpEventsForFilter (fonte di Unknown) al
di java.awt.EventDispatchThread.pumpEventsForHierarchy (fonte di Unknown) al
di java.awt.EventDispatchThread.pumpEvents (fonte di Unknown) al
di java.awt.EventDispatchThread.pumpEvents (fonte di Unknown) al

After che di java.awt.EventDispatchThread.run (fonte di Unknown) il JToolBar è chiuso, un nuovo schiocca in su dove è supposto per essere disposto dall'inizio (vedere la descrizione qui sopra).

Hope gues potete aiutare me.
class= > " libero " 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

Risposta : Alcuni problemi del Java con JToolBar, i formati del tasto, JPane, le costanti ecc.

Spiacente, qui è il codice:)
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:
importazione java.awt.BorderLayout;
importazione java.awt. Colore;
importazione java.awt. Dimensione;
importazione java.awt.GridBagConstraints;
importazione java.awt.GridBagLayout;
importazione java.awt.GridLayout;
importazione java.awt.event.ActionEvent;
importazione java.awt.event.ActionListener;

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

l'elaboratore centrale del codice categoria estende JFrame {
	serialVersionUID lungo finale statico riservato = 1581133201499203821L;

	moduleGBConstraints di GridBagConstraints = nuovo GridBagConstraints ();

	editColorsDiag di EditColorsDialog = nuovo EditColorsDialog (questo);

	elaboratore centrale pubblico (titolo della stringa) {
		setTitle (titolo);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

		setLayout (nuovo GridBagLayout ());

		buildMenuLine ();
		buildButtonLine ();

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

	buildMenuLine vuoto riservato () {
		mainMenu di JMenu = nuovo JMenu (“lima„);
		menuItem di JMenuItem = nuovo JMenuItem (“salvo„);
		Ascoltatore di MenuListener = nuovo MenuListener ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (ascoltatore);

		menuItem = nuovo JMenuItem (“carico„);
		mainMenu.add (menuItem);
		menuItem.addActionListener (ascoltatore);

		menuItem = nuovo JMenuItem (“vicino„);
		mainMenu.add (menuItem);
		menuItem.addActionListener (ascoltatore);

		menuItem = nuovo JMenuItem (“uscita„);
		mainMenu.add (menuItem);
		menuItem.addActionListener (ascoltatore);

		optionsMenu di JMenu = nuovo JMenu (“opzioni„);
		menuItem = nuovo JMenuItem (“pubblicare i colori„);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (ascoltatore);

		menuItem = nuovo JMenuItem (“circa„);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (ascoltatore);

		menuLine di JMenuBar = nuovo JMenuBar ();
		menuLine.add (mainMenu);
		menuLine.add (optionsMenu);

		setJMenuBar (menuLine);
	}

	buildButtonLine vuoto riservato () {
		buttonRow di JToolBar = nuovo JToolBar (“colori„, 1); il VERTICALE di // non fa
		lavoro di //, using 1
		buttonRow.setLayout (nuovo GridLayout (5, 1, 4, 4));
		Ascoltatore di ButtonListener = nuovo ButtonListener ();
		buttonx di int = 50;
		int = 30 buttony;
		Dimensione d = nuova dimensione (buttonx, buttony);

		buttonRow.setPreferredSize (posizione di segnale minimo);

		Tasto di JButton = nuovo JButton (“colore giallo„);
		button.setPreferredSize (d);
		buttonRow.add (tasto);
		button.addActionListener (ascoltatore);

		tasto = nuovo JButton (“colore rosso„);

		button.setPreferredSize (d);
		buttonRow.add (tasto);
		button.addActionListener (ascoltatore);

		tasto = nuovo JButton (“azzurro„);
		button.setPreferredSize (d);
		buttonRow.add (tasto);
		button.addActionListener (ascoltatore);

		tasto = nuovo JButton (“arancio„);
		button.setPreferredSize (d);
		buttonRow.add (tasto);
		button.addActionListener (ascoltatore);

		tasto = nuovo JButton (“verde„);
		button.setPreferredSize (d);
		buttonRow.add (tasto);
		button.addActionListener (ascoltatore);

		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;

		aggiungere (buttonRow, moduleGBConstraints);
	}

	il codice categoria riservato MenuListener realizza ActionListener {
		vuoto del pubblico actionPerformed (evento di ActionEvent) {
			itemName della stringa = event.getActionCommand ();
			System.out.println (“avete spinto la voce di menu chiamata \ "" + itemName
					+ “\„. .");
			se (== “uscita„ del itemName) {
				System.out.println (“annullando. .");
				dispongono ();
				System.exit (0);
			} altrimenti se (il == del itemName “pubblica i colori„) {
				owDialog di editColorsDiag.sh ();
			}
		}
	}

	il codice categoria riservato ButtonListener realizza ActionListener {
		vuoto del pubblico actionPerformed (evento di ActionEvent) {
			buttonName della stringa = event.getActionCommand ();
			System.out.println (“avete spinto il tasto chiamato \ "" + buttonName
					+ “\„. .");
		}
	}

	@SuppressWarnings (“pubblicazione periodica„)
	il codice categoria riservato DrawingPanel estende JPanel {
		DrawingPanel pubblico () {
			aggiungere (nuovo JTextField (“finestra dell'illustrazione„));
			aggiungere (nuovo JTextField (“- prova„));
		}
	}
}

@SuppressWarnings (“pubblicazione periodica„)
il codice categoria EditColorsDialog estende JDialog {
	exitButton di JButton = nuovo JButton (“vicino„);
	Ascoltatore di ButtonListener = nuovo ButtonListener ();

	EditColorsDialog pubblico (genitore di JFrame) {
		eccellente (genitore, “pubblica i colori„, allineare);
		aggiungere (nuovo JLabel (“la lastra di vetro per la pubblicazione colora„), BorderLayout.NORTH);
		aggiungere (nuovo JLabel (), BorderLayout.CENTER);
		aggiungere (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (ascoltatore);
		setSize (200, 300);
		setResizable (falso);
	}

	showDialog vuoto del pubblico () {
		setVisible (allineare);
	}

	il codice categoria riservato ButtonListener realizza ActionListener {
		vuoto del pubblico actionPerformed (evento di ActionEvent) {
			buttonName della stringa = event.getActionCommand ();
			se (== del buttonName “vicino„) {
				setVisible (falso);
			}
		}
	}
}

codice categoria pubblico Colorizer {
	vuoto pubblico di elettricità statica principale (args della stringa []) {
		newFrame dell'elaboratore centrale = nuovo elaboratore centrale (“Colorizer„);
		newFrame.setVisible (allineare);
		newFrame.setSize (300, 400);
		newFrame.setResizable (falso);
	}
}
Altre soluzioni  
 
programming4us programming4us