亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ball.setBounds 在 componentZOrder() 實現后停止工作

Ball.setBounds 在 componentZOrder() 實現后停止工作

米脂 2022-11-10 16:36:07
我無法使用 componentZOrder() 方法正確設置 Ball Boundspublic class gamearea extends JFrame{   private Toolkit toolkit = Toolkit.getDefaultToolkit();   private Cursor c;   JLabel ball = new JLabel();   JLabel desk = new JLabel();構造函數   Gamearea(){       addMouseMotionListener(this);       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);       setMaximumSize(new Dimension(800, 600));       setMinimumSize(new Dimension(800, 600));       setLayout(null);       desk.setIcon(new ImageIcon(getClass().getResource("/images/table.png")));從文件夾中獲取圖像       ball.setIcon(new ImageIcon(getClass().getResource("/images/bball.png")));       desk.setBounds(0,0,800,600);球出現但不在正確的位置       ball.setBounds(356,328,25,25);       add(desk);       add(ball);       setComponentZOrder(desk,1);       setComponentZOrder(ball,0);       setVisible(true);    }}
查看完整描述

2 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

你的gamearea類的內容窗格的布局管理器是什么?如果你沒有設置它,它默認為一個BorderLayout,然后當你向它添加兩個組件時,第一個進入CENTER,第二個將替換首先在中心。

您的組件不應是 JFrame 的子類。讓它擴展 JPanel 并使用適當的 LayoutManager 將子項放置在面板中,然后將該面板添加到您隨后顯示的 JFrame 中。

此外,您應該遵循 Java 約定并以大寫字母開頭類的名稱(GameArea 或 Gamearea,而不是 gamearea)。


查看完整回答
反對 回復 2022-11-10
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

如果你想在你的程序中正確實現 setComponentZOrder(),你必須在面板中添加對象,然后你可以使用 setComponentZOrder。


    panel.setLayout(null);


    panel.add(desk);

    panel.add(ball);


    panel.setComponentZOrder(ball,0);

    panel.setComponentZOrder(desk,1);


    setContentPane(panel);


    desk.setBounds(0,0,800,600);

    ball.setBounds(375,232,25,25);


查看完整回答
反對 回復 2022-11-10
  • 2 回答
  • 0 關注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號