java - 如何将JPanel添加到具有图形的另一个JPanel上?

  显示原文与译文双语对照的内容
0 0

基本上我试图做的是在另一个JPanel上添加一个 JPanel,它使用 paintComponent() 方法在上面绘制了图形。 但是我正在尝试添加的JPanel是 NOT,因为它由它在它上的JPanel/Graphics覆盖。

当我将JPanel添加到一个w/Graphics中时,我如何使它显示在前面,而不是由图形覆盖的JPanel 。

所有的答案都很感谢 !

如果你需要密码告诉我我愿意把它放到这里。

下面是代码:

yf_code_hryhezj6bi6gg33emu7au4dbmnvwcz3febvgc5tbozuwizlpm5qw2zj3bjyhkytmnfrsay3mmfzxgichmfwwkidfpb2gk3teomqeuudbnzswyidjnvygyzlnmvxhi4zaifrxi2lpnzggs43umvxgk4rmebjhk3tomfrgyzikpmfauidqovrgy2ldebdwc3lffbgwc2loinugc4tbmn2gk4ramnugc4tbmn2gk4rjbiqhwcraeaqcaidtmv2eyylzn52xikdoovwgykj3biqcaibaebzwk5cgn5rxk43bmjwgkkduoj2wkkj3bifca7ikbifca4dvmjwgsyzaozxwszbaobqws3tuinxw24dpnzsw45bii5zgc4dinfrxgidhfefca6ykeaqcaibaon2xazlsfzygc2loorbw63lqn5xgk3tufbtssoykeaqcaibam4xgi4tbo5ew2ylhmuugo4tpovxgilbagawcambmeb2gq2ltfe5quibaeaqcazzomrzgc52jnvqwozjimnugc4tbmn2gk4rom5sxislnmftwkkbjfqqgg2dbojqwg5dfoixgozlulaucslbamnugc4tbmn2gk4rom5sxiwjifewca5dinfzssoykeaqcaibam4xhgzluinxwy33sfbbw63dpoixferkefe5quibaeaqcazzomrzgc52smvrxikbrgawcamjqfqqgg2dbojqwg5dfoixgozlujvqxqsdfmfwhi2bifewcamjqfe5quibaeaqcazzomzuwy3csmvrxikbrgawcamjqfqqgg2dbojqwg5dfoixgozlujbswc3dunaucslbageycsoykeaqcaibam4xgi2ltobxxgzjife5quid5bifca4dvmjwgsyzaozxwszbam5sxisloozsw45dpoj4vgy3smvsw4kbjbiqhwcraeaqcaicnmfuw4ltjnz3capjanzsxoicjnz3gk3tun5zhskbjhmfcaibaeaqe2yljnyxgoylnmuxgczdefbgwc2lofzuw45rjhmfca7ikpufaupbpmnxwizj6bi6c64dsmu7a8888_yf_code

下面是我在游戏JPanel中添加的JPanel的代码

yf_code_hryhezj6bi6gg33emu7au4dvmjwgsyzamnwgc43tebew45tfnz2g64tzebsxq5dfnzshgickkbqw4zlmbj5quibaeaqca4dvmjwgsyzajfxhmzloorxxe6jifefcaibaeaqhwcraeaqcaibaeaqca43forggc6lpov2cq3tvnrwcsoykeaqcaibaeaqcaidtmv2fg2l2muudimbqfqqdgmbqfe5quibaeaqcaibaeaqhgzluijqwg23hojxxk3tefbbw63dpoixeetcbinfssoykeaqcaibaeaqcaidbmrsewzlzjruxg5dfnzsxekdunbuxgkj3biqcaibaeaqcaibaonsxirtpmn2xgylcnrssq5dsovsssoykeaqcaibapufh2cqkhqxwg33emu7aupbpobzgkpq8_yf_code
时间: 原作者:

0 0

自定义绘制是通过重写 paintComponent(...) 方法完成的。 我的猜测是你正在重写 paint() 方法。

自定义绘画的Swing教程中阅读本节。 因为你重写了错误的方法,你最终会先画出孩子,然后自定义画就在上面完成。

如果你需要更多的帮助,你的SSCCE 演示问题。

原作者:
0 0

提醒一下:java.awt 和 javax.swing的混合不好。 当你在一个面板上绘制东西并尝试将JPanel添加到它时,你将被绑定到一些问题中。 更好的解决方案是有 2种不同的jpanel,一个用于图形,另一个用于库存。

像这样:


JPanel mainPanel = new JPanel();//will hold BOTH panels
JPanel gamePanel = new Game(myCharacter);//declare game panel
JPanel inventoryPanel = new Inventory();//declare inventory panel

//set up some layout
mainPanel.setLayout(new GridLayout(2, 1));

//add the graphics panel, then add the inventory
mainPanel.add(gamePanel);
mainPanel.add(inventoryPanel);

这将使你的swing和awt组件混合,并节省你大量头痛。

原作者:
...