java - 为什么长方形没有显示在GUI里?
大家讲道理
大家讲道理 2017-04-18 09:23:41
0
1
312

求大神帮个忙,为什么长方形没有显示在GUI里?哪里出错了?

public class SelectSeat {
    
    static JFrame frame;

    public JPanel createContentPane() throws IOException
    {
        
        JPanel totalGUI = new JPanel();
        RectDraw rect= new RectDraw();
        rect.setPreferredSize(new Dimension(30,25)); 
        totalGUI.setLayout(null);
        totalGUI.setBackground(Color.WHITE);
        totalGUI.add(rect);
        
        return totalGUI;
    }
    
        void setVisible(boolean b) {
        // TODO Auto-generated method stub
        
    }
    
    static void createAndShowGUI() throws IOException
    {

        JFrame.setDefaultLookAndFeelDecorated(true);
        frame = new JFrame("Seat Selection");
        //Create and set up the content pane.
        SelectSeat demo = new SelectSeat();
        frame.setContentPane(demo.createContentPane());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(535, 520);
        frame.setLocation(500,220);
        frame.setVisible(true);
    }
    
    private static class RectDraw extends JPanel
    {
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);  
             g.drawRect(29,550,300,250);  
             g.setColor(Color.GRAY);  
             g.fillRect(20,5,330,25); 
             g.setColor(Color.BLUE);
             g.drawString("Movie Sceen", 150, 20);   
            }
        

    }

}

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
PHPzhong

原因是 totalGUI.setLayout(null);导致的问题,我一开始也觉得很奇怪totalGUI.setLayout(null);导致的问题,我一开始也觉得很奇怪

后来我参考了这个问题 http://stackoverflow.com/questions/12308764/java-setlayoutnull

解决方法,一个是不用setLayout(null);

后来我参考了这个问题 http://stackoverflow.com/questions/12308764/java-setlayoutnull

解决方法,一个是不用setLayout(null);,改用布局管理器#🎜🎜# #🎜🎜#或者是上面问题中一个回答的思路为你要展示的物件添加bound 防止显示的范围肉眼不可见#🎜🎜#
    public JPanel createContentPane() throws IOException {

        JPanel totalGUI = new JPanel();
        RectDraw rect = new RectDraw();
        rect.setPreferredSize(new Dimension(30, 25));
        totalGUI.setLayout(null);
        totalGUI.setBackground(Color.WHITE);
        totalGUI.add(rect);
        Dimension d = rect.getPreferredSize();
        rect.setBounds(10, 20, d.width, d.height);
        return totalGUI;
    }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板