【问题标题】:How do you add a button on top of a picture in jpanel如何在jpanel中的图片顶部添加按钮
【发布时间】:2013-05-25 10:55:18
【问题描述】:
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

【问题讨论】:

  • 别忘了打电话给super.paintComponent,否则你会得到令人讨厌的重绘工件。此外,您不应该尝试在 paintComponent 方法中加载图像,paint 方法应该快速返回并且可以快速连续调用多次...
  • 天哪...我们是否应该尝试指出他在代码中所做的坏事..
  • @brano88 喜欢不遵守Initial Threads 的要求?还是JLabel 会做同样的事情?或者他应该覆盖getPreferredSize 并使用Window#pack 而不是setSize
  • 至少他使用布局。 :)
  • @brano88 并没有混合使用重量和重量轻的组件,也没有尝试使用J/Applet:P

标签: java swing netbeans jpanel


【解决方案1】:

嗯...只需创建新按钮并将其添加到您的 drawPanel 上。像这样:

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

drawPanel 的默认布局为FlowLayout,因此您的按钮应位于该面板顶部的中心。 或者,如果您希望您的按钮位于图片上方,请将其添加到 panel

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

【讨论】:

    【解决方案2】:

    使用此代码:

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

    【讨论】:

    • 我把它放在哪里。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2013-02-28
    • 2013-01-19
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多