有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JPanel和组合框上的java背景图像

我想知道是否有可能在JPanel上的背景图片上放置一个创建的组合框。我试图这样做,但是,我认为背景图像是重叠我的组合框,所以它不会出现。任何人都知道一种干净的方法,在JPanel上有一个背景图像,上面有一个组合框,并使用框布局进行定位


共 (2) 个答案

  1. # 1 楼答案

    另一种方法(可能使用得更多)是覆盖JPanel{}并将图像直接绘制到Graphic的对象:

    JFrame frame=...;
    
    final BufferedImage bg=ImageIO.read(new URL("http://cs.anu.edu.au/student/comp6700/icons/DukeWithHelmet.png"));
    
    JPanel p=new JPanel() {
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
    
            Graphics2D g2d=(Graphics2D)g;
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    
            g2d.drawImage(bg,0,0,null);
        }
    
        @Override
        public Dimension getPreferredSize() {//so our JPanel will fit the image entirely
            return new Dimension(bg.getWidth(),bg.getHeight());
        } 
    };
    
    frame.add(p);
    frame.pack();
    frame.setVisible(true);