gpt4 book ai didi

java - JLayeredPane。动态改变JPanel的图层索引

转载 作者:行者123 更新时间:2023-12-02 04:05:07 26 4
gpt4 key购买 nike

我正在使用 JLayeredPane 来定位我的 JPanel 3 维,这样当有人单击 jpanel 时我可以实现“缩放”效果,我需要动态更改图层索引,以便单击的组件始终是在上面”。

JPanel jp = new JPanel();

JLayeredPane jlp = new JLayeredPane();
jlp.add(jp, new Integer(50));

这是我第一次放置 JPanel,但如何再次“到达”它并更改索引?

最佳答案

JLayeredPane具有“层”和“位置”概念。
您可以将所有组件放置在同一层上,但位置不同。
0 是图层内的最顶部位置,-1 是最底部位置。
JLayeredPane 方法 moveToFront , moveToBacksetPosition可用于在其层内重新定位组件。

这是此方法的一个示例,它将用户单击的组件置于前面:

JLayeredPane pane = new JLayeredPane();
for (int i = 0; i < 4; i++) {
JLabel lbl = new JLabel("Jlabel-"+(i+1));

lbl.setOpaque(true);
lbl.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (pane.getPosition(lbl) != 0)
pane.moveToFront(lbl);
}
});
lbl.setFont(lbl.getFont().deriveFont(48f));
lbl.setForeground(new Color(i*10, i*50, i*50));
lbl.setBorder(new LineBorder(Color.BLACK, 2));
lbl.setBounds(i*100, i*25, lbl.getPreferredSize().width, lbl.getPreferredSize().height);
pane.add(lbl, 0, new Integer(i+1));
}

enter image description here

关于java - JLayeredPane。动态改变JPanel的图层索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com