2016-05-24 39 views
1

JPanel不会显示在JFrame上,我不知道为什么。好像JPanel不会以某种方式被添加到JFrame中。有什么建议么?JPanel不会显示在框架

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(); 
    } 
} 
+1

添加面板之前'setVisible' –

+1

继@VinceEmigh的意见。面板应该返回600x600的首选大小。将面板添加到框架。设置框架不可抵抗,**在**调用之前。**包装**框架。将其设置为可见。这将是显示600x600面板所需的确切尺寸,并且其本身将会大于(根据操作系统等不同的尺寸)。 –

+0

我做到了,但无济于事,没有任何建议可以解决这个问题......在这种情况下有些奇怪。 –

回答

2

用途:

add(theGui); 

setContentPane(theGui); 

前:

setVisible(true); 
+0

我已经这样做了,因为你可以在main看到,我已经尝试过你的方法,但无济于事,这是一个非常奇怪的情况,因为面板根本不会显示在JFrame上 –

+1

它确实工作 - 你拼错了paintComponent()作为paintComponenet(),所以没有在面板上画。这并不意味着专家组不在场。 – RobotKarel314

+0

有时我想知道我每天的生活方式......非常感谢您的帮助! –