Java 杰帕内尔元';我不能出现在画面上
JPanel不会出现在JFrame上,我不知道为什么。似乎JPanel并没有以某种方式添加到JFrame中。有什么建议吗Java 杰帕内尔元';我不能出现在画面上,java,swing,jpanel,Java,Swing,Jpanel,JPanel不会出现在JFrame上,我不知道为什么。似乎JPanel并没有以某种方式添加到JFrame中。有什么建议吗 import java.awt.*; import javax.swing.*; public class LeaseItGUI extends JPanel{ private int width=600,height=600; public void paintComponenet(Graphics g){ super.paintComp
import java.awt.*;
import javax.swing.*;
public class LeaseItGUI extends JPanel{
private int width=600,height=600;
public void paintComponenet(Graphics g){
super.paintComponent(g);
g.fillRect(0, 0, width, height);
}
}
import javax.swing.*;
import java.awt.*;
public class LeaseItMain extends JFrame{
private int width=600,height=600;
public LeaseItMain(){
setSize(width,height);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
LeaseItGUI theGui = new LeaseItGUI();
setVisible(true);
add(theGui);
}
public static void main(String[] args){
LeaseItMain LIM = new LeaseItMain();
}
}
使用:
或
之前:
setVisible(true);
根据@VinceEmigh的建议,在
setVisible
之前添加面板。面板应返回600x600的首选尺寸。将面板添加到框架中。在调用..之前,将框架设置为不可调整大小。。把架子打包。将其设置为可见。它将是显示600x600面板所需的确切尺寸,并且本身将大于该尺寸(不同的尺寸取决于操作系统等)。我做了,但没有任何建议解决了问题。。。这种情况有些奇怪。我已经这样做了,正如你在主体中所看到的,我尝试了你的方法,但没有效果,这是一种非常奇怪的情况,因为面板根本不会出现在JFrameIt上。它确实起作用-你将paintComponent()错贴为paintComponenet(),所以面板上没有任何东西被涂上。这并不意味着面板不在那里。有时我想知道我每天是如何生活的。。。非常感谢您的帮助!通常的帮助是将@Override
放在重写超类/接口方法的方法之前。在这种情况下,它会给您一个警告,指示“paintComponenet”没有覆盖任何内容。
setContentPane(theGui);
setVisible(true);