如何在JPanel中的图片上方添加一个按钮

3
import java.awt.*;   
import javax.swing.*;  

public class Game
{  

  MyDrawPanel draw;  

  public static void main(String[] args)
  {  
    new Game().go();   
  }  

  public void go()
  { 
    JFrame frame=new JFrame("Revenge");  
    JPanel panel=new JPanel();  
    draw=new MyDrawPanel();         
    frame.getContentPane().add(BorderLayout.CENTER,draw);  
    frame.setSize(750,360);  
    frame.setVisible(true);    
  }  
  public class MyDrawPanel extends JPanel
  {  
    @Override
    public void paintComponent(Graphics g)
    {              
      Image image=new ImageIcon("C:\\Users\\zep\\Desktop\\title.png").getImage();  
      g.drawImage(image,0,0,this);
    }  
  }  
}  

所以基本上我需要帮助尝试添加一个按钮。我对Java非常陌生,但是我需要为我的班级CPT完成这项任务。请你帮帮我,你会成为我的英雄:3

1
不要忘记调用 super.paintComponent,如果不这样做,你会得到令人讨厌的重绘残留物。此外,你不应该在 paintComponent 方法中尝试加载图像,因为绘制方法应该快速返回并且可能会在短时间内被多次调用... - MadProgrammer
哦,亲爱的...我们应该试着指出他在代码中犯的错误吗? - Branislav Lazic
2
@brano88 像不遵守[初始线程](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)的要求吗?或者说使用`JLabel`也可以达到同样的效果?或者他应该重写`getPreferredSize`并改用`Window#pack`而不是`setSize`? - MadProgrammer
至少他使用布局。 :) - Branislav Lazic
@brano88 并且没有混合使用重量级和轻量级组件,也没有尝试使用 J/Applet :P - MadProgrammer
希望这个帖子能对你有所帮助... - nIcE cOw
2个回答

4

嗯...只需要创建新的按钮并将其添加到绘图面板上。就像这样:

JButton button = new JButton("Text goes here");
drawPanel.add(button);

drawPanel 的默认布局是 FlowLayout,因此您的按钮应该位于该面板的中心。 或者,如果您想要将按钮放在图片上方,请将其添加到 panel

panel.add(button);
frame.getContentPane().add(panel,BorderLayout.NORTH);

0
请使用以下代码:
JButton button = new JButton("Text goes here");
drawPanel.add(button, BorderLayout.NORTH);

我把它放在哪里?谢谢帮忙 :) - zepperoni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接