在 BorderLayout 中添加 JPanel?
Add JPanel inside of a BorderLayout?
我创建了一个包含 5 个面板的 window 和一个 BorderLayout
,但随后无法绘制图形。
我不确定如何将其实际放入 BorderLayout.CENTER
,因为它似乎与我刚制作 new JPanel
.[=16= 时的方式不一样]
有人可以指导我如何实现这一目标吗?
import javax.swing.*;
import java.awt.*;
public class GameScene2 {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
mainGameScene();
}
});
}
private static void mainGameScene() {
JFrame window = new JFrame("This is my first game :o");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(new mainGamePanel());
window.pack();
window.setVisible(true);
}
}
class mainGamePanel extends JPanel {
public Dimension getPreferredSize() {
return new Dimension(1280, 720);
}
public void paintComponent(Graphics pencil) {
super.paintComponent(pencil);
pencil.drawString("Boo", 100, 100);
}
}
Panel p = new Panel();
p.setLayout(new BorderLayout());
像这样将它添加到框架中。
这里有完整的link解释如何使用Borderlayout:
https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
这解释了如何将其添加到面板:
https://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html
编辑:
原来你有
window.add(新的 mainGamePanel());
改为尝试
mainGamePanel p = new mainGamePanel();
p.setLayout(new BorderLayout());
window.add(p);
我创建了一个包含 5 个面板的 window 和一个 BorderLayout
,但随后无法绘制图形。
我不确定如何将其实际放入 BorderLayout.CENTER
,因为它似乎与我刚制作 new JPanel
.[=16= 时的方式不一样]
有人可以指导我如何实现这一目标吗?
import javax.swing.*;
import java.awt.*;
public class GameScene2 {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
mainGameScene();
}
});
}
private static void mainGameScene() {
JFrame window = new JFrame("This is my first game :o");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.add(new mainGamePanel());
window.pack();
window.setVisible(true);
}
}
class mainGamePanel extends JPanel {
public Dimension getPreferredSize() {
return new Dimension(1280, 720);
}
public void paintComponent(Graphics pencil) {
super.paintComponent(pencil);
pencil.drawString("Boo", 100, 100);
}
}
Panel p = new Panel();
p.setLayout(new BorderLayout());
像这样将它添加到框架中。
这里有完整的link解释如何使用Borderlayout:
https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
这解释了如何将其添加到面板:
https://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html
编辑:
原来你有 window.add(新的 mainGamePanel());
改为尝试
mainGamePanel p = new mainGamePanel();
p.setLayout(new BorderLayout());
window.add(p);