【问题标题】:Change overlapping of JButtons in flowlayout在 flowlayout 中更改 JButtons 的重叠
【发布时间】:2015-01-27 19:07:56
【问题描述】:

如何重绘最右边的卡片最后和最左边的卡片,这样重叠会反转?

所以我在 flowlayout 中有一个 JPanel,其中包含 JButton。我想模拟手拿卡片的感觉,所以我重叠了 JButton。问题是 JButtons 图像的重叠使得数字只出现在右下角,我希望它们位于左上角。 这就是我现在拥有的:

ZOrdering 不起作用,它只是颠倒了牌的顺序(另一边是 A,K 在前等)。我想要的是最后重绘最右边的卡片,最左边的卡片首先重绘,这样重叠就会反转。

编辑: 构造手的代码:

hand= new JPanel();
    hand.setLayout(new FlowLayout(FlowLayout.CENTER, -45, 0));
    hand.setOpaque(false);
    for(int i=0; i<p1.getHand().size(); i++){
        JButton te=new JButton();
        //button customization, icons and such
        te.addActionListener(this);
        //here I tried the ZOrdering that didn't work
        //hand.setComponentZOrder(te, 0)
        hand.add(te);
    }
    this.add(hand);
    }
    //yes, the setBounds is long and weird 
    hand.setBounds(WINDW/2-((p1.getHand().size())*CARDWHAND*2/5), WINDH-CARDHHAND-30, p1.getHand().size()*CARDWHAND*4/5+50, CARDHHAND+30);

此布局管理器为空

【问题讨论】:

  • 1) 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)或SSCCE(简短、自包含、正确示例)。 2) “所以我有一个..” ..问题?你有什么问题?
  • 对不起,我在描述中没有明确的问题。我的问题是,如何最后重绘最右边的卡片,最左边的卡片先重绘,这样重叠会反转?
  • 正如 Andrew 已经说过的,我们需要一个可以使用的 MCVE(即示例代码)。帮助我们帮助您阅读这些链接并执行其中所说的 C:
  • 您是否尝试过以相反的顺序添加卡片?
  • 顺便说一句,组件通常按照添加的顺序绘制(如果我没记错的话)

标签: java swing jbutton layout-manager flowlayout


【解决方案1】:

查看OverlapLayout 可以支持此功能。

您可能还想为此使用 JLabel 而不是 JButton。上面的链接将解释一个按钮的潜在问题,虽然我认为这个问题只有在你使用按钮的边框时才会出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2020-02-20
    相关资源
    最近更新 更多