java - 在java中的多个标签上添加标签

标签 java swing

我在 JFrame 上以网格的形式添加了多个标签()。现在我想在网格中的一些标签上添加一个标签(梯子),为此我正在做这样的事情:

for(int i=0, x=0; i<10; i++,x+=50) {
    for(int j=0, y=0; j<10; j++,y+=50) {
        box[i][j] = new JLabel(j);
        box[i][j].setOpaque(true);
        box[i][j].setBackground(Color.BLACK);   
        box[i][j].setBounds(x, y, 50,50);
        board.add(box[i][j]);
    }
}

ladder.setBounds(0, 0, 50, 200);
ladder.setOpaque(true);
board.add(ladder);

但是这段代码并没有在盒子上添加阶梯。所以请告诉我如何在盒子上添加阶梯标签。

最佳答案

您可以使用 JLayeredPane从您的 JFrame 来实现这一点。

只要把木板放在后层,把梯子放在前层就可以了。

这是一个示例,接近您的实际代码:

    JFrame frame = new JFrame();

    JPanel board = new JPanel();

    board.setLayout(null);
    board.setBounds(0, 0, 500, 500);

    for (int i = 0, x = 0; i < 10; i++, x += 50) {
        for (int j = 0, y = 0; j < 10; j++, y += 50) {
            JLabel lab = new JLabel("" + j);
            lab.setOpaque(true);
            lab.setBackground(Color.BLACK);
            lab.setBounds(x, y, 50, 50);
            board.add(lab);
        }
    }

    JLabel ladder = new JLabel();
    ladder.setBackground(Color.RED);
    ladder.setBounds(0, 0, 50, 200);
    ladder.setOpaque(true);

    JLayeredPane pane = frame.getLayeredPane();

    pane.add(ladder, new Integer(2)); // front
    pane.add(board, new Integer(1));  // back

    frame.setVisible(true);

这里有更多信息:How to Use Layered Panes

关于java - 在java中的多个标签上添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36335195/

相关文章:

java - 我们可以在 Spring data jpa @Query 中调用或组合 Select 和过程吗

java - 如何使用java提取字符串正则表达式?

java - JTabbedPane 的问题

java - google-api-translate-java 检索翻译时出错

java - 根据邻居的值更新多线程单元。如何继续使用 CyclicBarrier?

java - 尝试使用 sbt 构建一个 scala 项目。 scala-swing Unresolved 依赖关系

java - 如何更改 Jframe 的默认外观? (不是 Netbeans 的主题)

java - 在 JScrollPane 中使用 JTextArea 设置插入符位置

java - 在飞行Android上解析JSON

java - 如何在 JtextArea 周围放置填充