首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JLayeredPane绘图

JLayeredPane绘图
EN

Stack Overflow用户
提问于 2015-05-10 13:15:35
回答 1查看 50关注 0票数 2

我试图用下面的代码在JLayeredPane中绘制图片,但我看到的只是最后一个单元格中的一张小图片,可能是5x5px。我也不知道原因。有什么建议吗?谢谢。

代码语言:javascript
复制
    try {
        imgL0 = ImageIO.read(new File("resources/L0.png"));
    } catch (Exception e) {
        System.out.println("FileNotFoundException");
        System.exit(1);                
    }

    ImageIcon imageIcon = new ImageIcon(imgL0);
    JLabel img = new JLabel();        
    img.setIcon(imageIcon);
    img.setBounds(0, 0, boardSize, boardSize);
    field = new JLayeredPane[boardSize][boardSize];

    for (int i = 0; i < boardSize; i++) {
        for (int j = 0; j < boardSize; j++) {
            field[i][j] = new JLayeredPane();
            field[i][j].setSize(new Dimension(80, 80));
            field[i][j].setBorder(BorderFactory.createLineBorder(Color.black));
            field[i][j].add(img);
            field[i][j].repaint();
            field[i][j].revalidate();                
            boardPanel.add(field[i][j], JLayeredPane.DEFAULT_LAYER); 
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-10 13:26:26

您似乎试图多次向不同的容器添加一个JLabel,这在Swing GUI中是不允许的,因为使用Swing,组件只能添加一次,如果它被添加到多个容器中,则只显示在最后一个添加的容器中。相反,请考虑创建一个包含JPanel的JLabels网格,并多次向网格所持有的JLabels中添加一个ImageIcon (这是ImageIcons允许的)。

您的代码还有其他好奇心,包括尝试添加多个JLayeredPanes,这是一个非常不寻常的要求。你到底想在这里建什么?我必须相信有更好的方法来做这件事,不管是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30151860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档