現在、Head First Javaの第12章を読んでいます。彼らは、JFramesが中央、北、南、東、西に分割されていることをちょうど言及しました。次に、2つの引数add()メソッドを使用して、指定されたコンポーネントをそのJFrameで指定された領域に追加します。CENTER以外の領域へのJPanelの追加
5つの領域のそれぞれにJButtonを追加できます。 JButtonを中心に、自分のJPanelを中央領域に追加することもできます。しかし、JPanelを中心以外の領域に追加しようとすると、JPanelは表示されません。
JFrameの中央以外の領域にJPanelsを追加することについては何も触れていません。だから私の質問です:JFrameの北、南、東または西の領域にJPanelsを追加することは可能ですか?
私にこれを手伝うことができる人には、事前に感謝します。ここで
は、私は北の地域で私のJPanelを使用して実行しようとしてきたコードです:
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);
}
}
このチュートリアルhttps://docs.oracle.com/javase/tutorial/uiswing/ を試してください。具体的には、https://docs.oracle.com/javase/tutorial/uiswing/components/toplevelを参照してください。htmlの – Aubin