Frage : Einige Java-Probleme mit JToolBar, Knopfgrößen, JPane, Konstanten etc.

Ich hinzufüge hier den Code für Colorizer.java ier. Es soll üblich auf dem Gründen eines GUI sein. Es gibt kein intenton auf der Herstellung des Codes für ein reales Farbenprogramm. Wenn ich diese selbst gemacht Praxis tat, erhielt ich in den folgenden Punkten stuck:

(-), das ich nicht erreichte, alle Knöpfe zu erhalten, um die selbe Größe zu sein. Versuchte 50x50, aber ich sind nicht sicher, wenn die die korrekte Größe ist. Es funktionierte nicht anyway.
(-), welches das buttonrow falsch in die Mitte gelegt. Es soll unter das menuline UNO gerade gesetzt werden das oberste linke corner.
(-), welches das drawingpanel im Mainframe falsche Größe hat. Es sollte den Rest des window.
(-) Using die konstante VERTIKALE ergänzen scheint nicht zu arbeiten. Ich dachte, dass ich die Kategorienbibliotheken correctly.
(-) wenn ich weg vom JToolBar vom Mainframe schleppe, und dann Abschluss es, ich erhalte die folgende Störung importiert:
Exception im Gewinde „AWT-EventQueue-0“ java.lang.IllegalArgumentException: canno
t hinzufügen Plan gen: Begrenzungen müssen ein GridBagConstraint
java.awt.GridBagLayout.addLayoutComponent (Unknown Quelle) am
java.awt. Container.addImpl (unbekannte Quelle) am
an java.awt sein. Container.add (Unknown Quelle)
an javax.swing.plaf.basic. BasicToolBarUI$FrameListener.windowClosing (Unk
nown Quelle)
java.awt. Window.processWindowEvent (Unknown Quelle) am
javax.swing.JDialog.processWindowEvent (Unknown Quelle) am
java.awt. Window.processEvent (Unknown Quelle) am
an java.awt. Component.dispatchEventImpl (unbekannte Quelle)
an java.awt. Container.dispatchEventImpl (unbekannte Quelle)
an java.awt. Window.dispatchEventImpl (Unknown Quell)
an java.awt. Component.dispatchEvent (Unknown Quelle)
java.awt.EventQueue.dispatchEvent (Unknown Quelle) am
java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Quelle) am
java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Quelle) am
java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Quelle) am
java.awt.EventDispatchThread.pumpEvents (Unknown Quelle) am
java.awt.EventDispatchThread.pumpEvents (Unknown Quelle) am
java.awt.EventDispatchThread.run (Unknown Quelle) am

After, welches das JToolBar, ein Neues geschlossen ist, knallt oben, wo es von Anfang an gesetzt werden soll (Beschreibung oben sehen).

Hope können Sie gues me.
helfen
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:
import javax.swing.*; //JFrame, JButton, JPanel, JTextField
Import javax.swing.SwingConstants; //Gets die Konstanten, wie VERTIKALES und HORIZONTALES
Import java.awt.*; //Color, GridBagLayout, GridBagConstraints, BorderLayout
Import java.awt.event.*; //ActionListener und der Rest
Import java.awt. Maß;

Kategorie Mainframe verlängert JFrame {
	EditColorsDialog editColorsDiag = neues EditColorsDialog (dieses);
	
	allgemeines Mainframe (Schnurtitel) {
		setTitle (Titel);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		
		setLayout (neues GridBagLayout ());
		
		buildMenuLine ();
		buildButtonLine ();
		
		GridBagConstraints c = neues GridBagConstraints ();
		c.gridx = 1;
		c.gridy = 1;
		c.gridheight = 6;
		
		DrawingPanel dPanel = neues DrawingPanel ();
		dPanel.setBorder (BorderFactory.createLineBorder (Color.black));
		hinzufügen (dPanel, c);
	}
	privates leeres buildMenuLine () {
		JMenu mainMenu = neues JMenu („Akte“);
		JMenuItem menuItem = neues JMenuItem („außer“);
		MenuListener Zuhörer = neues MenuListener ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);
		
		menuItem = neues JMenuItem („Last“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);
		
		menuItem = neues JMenuItem („nah“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);
		
		menuItem = neues JMenuItem („Ausgang“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);
		
		JMenu optionsMenu = neues JMenu („Wahlen“);
		menuItem = neues JMenuItem („Farben redigieren“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);
		
		menuItem = neues JMenuItem („über“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);
		
		JMenuBar menuLine = neues JMenuBar ();
		menuLine.add (mainMenu);
		menuLine.add (optionsMenu);
		
		setJMenuBar (menuLine);
	}
	privates leeres buildButtonLine () {
		JToolBar buttonRow = neues JToolBar („Farben“, 1); //VERTICAL arbeitet, nicht using 1
		ButtonListener Zuhörer = neues ButtonListener ();
		int buttonx = 50;
		int buttony = 50;
		Maß d = neues Maß (buttonx, buttony);
		
		JButton Knopf = neues JButton („Gelb“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);
		
		Knopf = neues JButton („Rot“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);
		
		Knopf = neues JButton („Blau“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);
		
		Knopf = neues JButton („Orange“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);
		
		Knopf = neues JButton („Grün“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);
		
		GridBagConstraints c = neues GridBagConstraints ();
		c.fill = GridBagConstraints.VERTICAL;
		c.gridx = 0;
		c.gridy = 1;
		c.gridheight = 6;

		hinzufügen (buttonRow, c);
	}
	private Kategorie MenuListener einführt ActionListener {rt
		Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
			Schnur itemName = event.getActionCommand ();
			System.out.println („Sie drückten das genannte \ "" + itemName Menüeinzelteil +“ \“. .");
			wenn (itemName == „Ausgang“) {
				System.out.println („. .") herausnehmend;
				abschaffen  ();
				System.exit (0);
			} sonst, wenn (itemName == „redigieren Farben“) {
				editColorsDiag.sh owDialog ();
			}
		}
	}
	private Kategorie ButtonListener einführt ActionListener {rt
		Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
			Schnur buttonName = event.getActionCommand ();
			System.out.println („Sie betätigten den genannten \ "" + buttonName Knopf +“ \“. .");
		}
	}
	private Kategorie DrawingPanel verlängert JPanel {
		allgemeines DrawingPanel () {
			hinzufügen (neues JTextField („Zeichnungs-Fenster“));
			hinzufügen (neues JTextField („- Prüfung“));
		}
	}
}
Kategorie EditColorsDialog verlängert JDialog {
	JButton exitButton = neues JButton („nah“);
	ButtonListener Zuhörer = neues ButtonListener ();
	
	allgemeines EditColorsDialog (JFrame Elternteil) {
		Super (Elternteil, „redigieren die Farben“, zutreffend);
		hinzufügen (neues JLabel („Scheibe für das Redigieren färbt“), BorderLayout.NORTH);
		hinzufügen (neues JLabel (), BorderLayout.CENTER);
		hinzufügen (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (Zuhörer);
		setSize (200.300);
		setResizable (falsch);
	}
	Öffentlichkeit leeres showDialog () {
		setVisible (zutreffend);
	}
	private Kategorie ButtonListener einführt ActionListener {rt
		Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
			Schnur buttonName = event.getActionCommand ();
			wenn (buttonName == „nah“) {
				setVisible (falsch);
			}
		}
	}
}

Kategorie Colorizer {
	allgemeine Staticlücke hauptsächlich (Schnur [] args) {
		Mainframe newFrame = neues Mainframe („Colorizer“);
		newFrame.setVisible (zutreffend);
		newFrame.setSize (300.400);
		newFrame.setResizable (falsch);
	}
}

Antwort : Einige Java-Probleme mit JToolBar, Knopfgrößen, JPane, Konstanten etc.

, Ist hier der Code: traurig)
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:
Import java.awt.BorderLayout;
Import java.awt. Farbe;
Import java.awt. Maß;
Import java.awt.GridBagConstraints;
Import java.awt.GridBagLayout;
Import java.awt.GridLayout;
Import java.awt.event.ActionEvent;
Import java.awt.event.ActionListener;

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

Kategorie Mainframe verlängert JFrame {
	privates statisches abschließendes langes serialVersionUID = 1581133201499203821L;

	GridBagConstraints moduleGBConstraints = neues GridBagConstraints ();

	EditColorsDialog editColorsDiag = neues EditColorsDialog (dieses);

	allgemeines Mainframe (Schnurtitel) {
		setTitle (Titel);
		setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

		setLayout (neues GridBagLayout ());

		buildMenuLine ();
		buildButtonLine ();

		DrawingPanel dPanel = neues DrawingPanel ();
		dPanel.setBorder (BorderFactory.createLineBorder (Color.black));
		moduleGBConstraints.gridx++;
		moduleGBConstraints.gridheight = 1;
		moduleGBConstraints.weightx = 0.7;
		moduleGBConstraints.weighty = 0;
		moduleGBConstraints.gridheight = 6;
		hinzufügen (dPanel, moduleGBConstraints);
	}

	privates leeres buildMenuLine () {
		JMenu mainMenu = neues JMenu („Akte“);
		JMenuItem menuItem = neues JMenuItem („außer“);
		MenuListener Zuhörer = neues MenuListener ();
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);

		menuItem = neues JMenuItem („Last“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);

		menuItem = neues JMenuItem („nah“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);

		menuItem = neues JMenuItem („Ausgang“);
		mainMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);

		JMenu optionsMenu = neues JMenu („Wahlen“);
		menuItem = neues JMenuItem („Farben redigieren“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);

		menuItem = neues JMenuItem („über“);
		optionsMenu.add (menuItem);
		menuItem.addActionListener (Zuhörer);

		JMenuBar menuLine = neues JMenuBar ();
		menuLine.add (mainMenu);
		menuLine.add (optionsMenu);

		setJMenuBar (menuLine);
	}

	privates leeres buildButtonLine () {
		JToolBar buttonRow = neues JToolBar („Farben“, 1); //-VERTIKALE tut nicht
		//-Arbeit, using 1
		buttonRow.setLayout (neues GridLayout (5, 1, 4, 4));
		ButtonListener Zuhörer = neues ButtonListener ();
		int buttonx = 50;
		int buttony = 30;
		Maß d = neues Maß (buttonx, buttony);

		buttonRow.setPreferredSize (Null);

		JButton Knopf = neues JButton („Gelb“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);

		Knopf = neues JButton („Rot“);

		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);

		Knopf = neues JButton („Blau“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);

		Knopf = neues JButton („Orange“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);

		Knopf = neues JButton („Grün“);
		button.setPreferredSize (d);
		buttonRow.add (Knopf);
		button.addActionListener (Zuhörer);

		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;

		hinzufügen (buttonRow, moduleGBConstraints);
	}

	private Kategorie MenuListener einführt ActionListener {rt
		Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
			Schnur itemName = event.getActionCommand ();
			System.out.println („Sie drückten das genannte \ "" + itemName Menüeinzelteil
					+ „\“. .");
			wenn (itemName == „Ausgang“) {
				System.out.println („. .") herausnehmend;
				abschaffen  ();
				System.exit (0);
			} sonst, wenn (itemName == „redigieren Farben“) {
				editColorsDiag.sh owDialog ();
			}
		}
	}

	private Kategorie ButtonListener einführt ActionListener {rt
		Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
			Schnur buttonName = event.getActionCommand ();
			System.out.println („Sie betätigten den genannten \ "" + buttonName Knopf
					+ „\“. .");
		}
	}

	@SuppressWarnings („Serie“)
	private Kategorie DrawingPanel verlängert JPanel {
		allgemeines DrawingPanel () {
			hinzufügen (neues JTextField („Zeichnungs-Fenster“));
			hinzufügen (neues JTextField („- Prüfung“));
		}
	}
}

@SuppressWarnings („Serie“)
Kategorie EditColorsDialog verlängert JDialog {
	JButton exitButton = neues JButton („nah“);
	ButtonListener Zuhörer = neues ButtonListener ();

	allgemeines EditColorsDialog (JFrame Elternteil) {
		Super (Elternteil, „redigieren die Farben“, zutreffend);
		hinzufügen (neues JLabel („Scheibe für das Redigieren färbt“), BorderLayout.NORTH);
		hinzufügen (neues JLabel (), BorderLayout.CENTER);
		hinzufügen (exitButton, BorderLayout.SOUTH);
		exitButton.addActionListener (Zuhörer);
		setSize (200, 300);
		setResizable (falsch);
	}

	Öffentlichkeit leeres showDialog () {
		setVisible (zutreffend);
	}

	private Kategorie ButtonListener einführt ActionListener {rt
		Öffentlichkeitslücke actionPerformed (ActionEvent Ereignis) {
			Schnur buttonName = event.getActionCommand ();
			wenn (buttonName == „nah“) {
				setVisible (falsch);
			}
		}
	}
}

allgemeine Kategorie Colorizer {
	allgemeine Staticlücke hauptsächlich (Schnur [] args) {
		Mainframe newFrame = neues Mainframe („Colorizer“);
		newFrame.setVisible (zutreffend);
		newFrame.setSize (300, 400);
		newFrame.setResizable (falsch);
	}
}
Weitere Lösungen  
 
programming4us programming4us