Swing 将JPanel添加到JFrame中
我知道这听起来是一个简单的问题,但我正在用按钮之类的东西做一个简单的文本冒险,我不知道如何将我的Jpanel添加到我的JFrame中。我的JPanel有一堆按钮、图形和其他东西,如果这有什么不同的话。我提供了下面的代码。框架面板=新框架();是扩展JPanel的另一个类。我知道它被称为“框架”是令人困惑的,因为我曾经让它扩展JFrame。无论如何,我的代码不会像它应该的那样从另一个类生成按钮、图形等。谢谢Swing 将JPanel添加到JFrame中,swing,user-interface,jframe,jpanel,Swing,User Interface,Jframe,Jpanel,我知道这听起来是一个简单的问题,但我正在用按钮之类的东西做一个简单的文本冒险,我不知道如何将我的Jpanel添加到我的JFrame中。我的JPanel有一堆按钮、图形和其他东西,如果这有什么不同的话。我提供了下面的代码。框架面板=新框架();是扩展JPanel的另一个类。我知道它被称为“框架”是令人困惑的,因为我曾经让它扩展JFrame。无论如何,我的代码不会像它应该的那样从另一个类生成按钮、图形等。谢谢 package sonomaroller; import javax.swing.*;
package sonomaroller;
import javax.swing.*;
import java.awt.*;
import static javax.swing.JFrame.*;
public class SonomaRoller extends JFrame {
public static Dimension size = new Dimension(550,550); //Dimension of Frame
public static String title = "Sonoma Roller v0.00" ;
public SonomaRoller(){
setTitle(title);
setSize(size);
setResizable(false);
setLocationRelativeTo(null); // null centers window on screen
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println("hello?");
//setLayout(null);
setVisible(true);
}
public static void main(String[] args) {
SonomaRoller object1=new SonomaRoller();
frame panel=new frame();
}
}
试一试
或者干脆
object1.add(panel);
发件人:
及
如果有帮助,下面是一些代码:
import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame {
public MyFrame() {
add(new MyPanel());
setSize(640, 480);
}
public static void main(String[] args) throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
@Override public void run() {
new MyFrame().setVisible(true);
}
});
}
}
class MyPanel extends JPanel {
@Override protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillOval(20, 20, 80, 80);
}
}
也许像这样
package sonomaroller;
import javax.swing.*;
import java.awt.*;
import javax.swing.JFrame.*;
public class SonomaRoller extends JFrame {
public static Dimension size = new Dimension(550,550); //Dimension of Frame
public static String title = "Sonoma Roller v0.00" ;
public SonomaRoller(){
setTitle(title);
setSize(size);
setResizable(false);
setLocationRelativeTo(null); // null centers window on screen
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println("hello?");
//setLayout(null);
setVisible(true);
frame panel=new frame();
setContentPane(panel);
}
public static void main(String[] args) {
SonomaRoller object1=new SonomaRoller();
}
}
我通常是这样做的:
public class SonomaRoller extends JFrame {
public SonomaRoller(){
setLayout(new BorderLayout(0, 0));
JPanel newPanel = new JPanel();
getContentPane().add(newPanel);
}
}
这就是问题所在:
frame panel=new frame();
将此行而不是上面的代码放在下面:
Frame frame = new Frame();
Panel panel = new Panel();
frame.add(panel);
你能给我们看看你另一门课的代码吗?另外,确保没有将布局管理器设置为null。更喜欢使用布局管理器并设置组件的首选大小。我已从其他类上载了我的代码。谢谢你的帮助!
Frame frame = new Frame();
Panel panel = new Panel();
frame.add(panel);