Ich lese gerade Kapitel 12 von Head First Java über das Erstellen von GUIs. Sie haben gerade erwähnt, dass JFrames in Mitte, Norden, Süden, Osten und Westen aufgeteilt sind. Das Buch verwendet dann die 2-Argument-Methode add(), um angegebene Komponenten zu einem bestimmten Bereich mit diesem JFrame hinzuzufügen.Hinzufügen von JPanels zu anderen Regionen als CENTER
Ich kann eine JButton zu jeder der fünf Regionen gut hinzufügen. Ich kann auch meine eigene JPanel mit JButtons um die Center-Region herum hinzufügen. Wenn ich dann versuche, ein JPanel zu einer anderen Region als der Mitte hinzuzufügen, wird das JPanel nicht angezeigt.
Ich habe wirklich über das Web und Stack Overflow für die letzte Stunde gesucht und ich habe nichts gefunden, die JPanels zu einer anderen Region als Center in einem JFrame hinzufügen. Meine Frage ist also: Ist es möglich, JPanels zu den nördlichen, südlichen, östlichen oder westlichen Regionen eines JFrames hinzuzufügen?
Vielen Dank im Voraus an jeden, der mir dabei helfen kann. Hier
ist der Code, ich habe versucht, mit meinem JPanel im Norden Region zu laufen:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.BorderLayout;
public class StackQ {
JFrame frame;
public static void main(String [] args) {
StackQ gui = new StackQ();
gui.go();
}
public void go() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("location test");
JButton button2 = new JButton("location test");
JButton button3 = new JButton("location test");
JButton button4 = new JButton("location test");
myDrawPanel custom = new myDrawPanel();
frame.getContentPane().add(button, BorderLayout.CENTER);
frame.getContentPane().add(button2, BorderLayout.EAST);
frame.getContentPane().add(button3, BorderLayout.WEST);
frame.getContentPane().add(button4, BorderLayout.SOUTH);
frame.getContentPane().add(custom, BorderLayout.NORTH);
frame.setSize(300,300);
frame.setVisible(true);
}
}
class myDrawPanel extends JPanel {
public void paintComponent(Graphics g) {
int red = (int) (Math.random() * 255);
int green = (int) (Math.random() * 255);
int blue = (int) (Math.random() * 255);
Color random = new Color(red, green, blue);
g.setColor(random);
g.fillOval(20,20,100,100);
}
}
Versuchen Sie dieses Tutorial https://docs.oracle.com/javase/tutorial/uiswing/ und genauer https://docs.oracle.com/javase/tutorial/uiswing/components/topevel.html – Aubin