将图像添加到JFrame内的现有JPanel

时间:2011-05-11 13:37:29

标签: image jframe jpanel

所以,我在AP计算机科学课上,我们最后的项目是制作一个程序,展示我们学到的一系列不同概念。其中两个是显示图像,并添加按钮。

我决定制作一个基于决策的简洁RPG,显示if-else分支。我想出了如何获得一个带有开始按钮的菜单,并打开一个输入对话框。但我无法弄清楚如何将图像添加到按钮所在的同一个JFrame。你知道它会在按钮上方或下方显示图像。我学会了如何显示图像,但这些示例都是仅显示图像的扩展类。我无法弄清楚如何在我现有的代码中调用某种draw或bufferedimage方法或在何处放置它。也许我可以打电话给另一个有图像代码的班级?这是我到目前为止所拥有的。

public class Smashing extends JPanel
{

    public static void main(String[] args)
    {

    JFrame frame = new JFrame("Input Dialog Box Frame");
    JButton button = new JButton("Start Nigel's Adventure");      
    button.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent ae)
      {
        String str = JOptionPane.showInputDialog( "What should Nigel do? :  Enter a cardinal direction ex. n");
        if (str.equals("n"))
        {
          JOptionPane.showMessageDialog(null, "Nigel comes upon a tree ");
          String str2 = JOptionPane.showInputDialog( "What should Nigel do? :");
          if (str2.equals("climb"))
          JOptionPane.showMessageDialog(null, "Nigel climbs up the tree ");
          if (str2.equals("s"))
          JOptionPane.showMessageDialog(null, "Nigel returns to the strating position ");
        }

         if (str.equals("s"))
        {
            JOptionPane.showMessageDialog(null, "Nigel comes upon boulder ");
            String str3 = JOptionPane.showInputDialog( "What should Nigel do? :");
        }



        } 

    });
    JPanel panel = new JPanel();
    panel.add(button);
    frame.add(panel);
    frame.setSize(400, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}

我已经导入了一堆软件包,我只是没有在代码中包含它,哦,这也是一个常规的应用程序类,而不是applet。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用JLabel存储从文件或缓冲区读取的图像:

ImageIcon image = new ImageIcon("path_to_image");
//or
ImageIcon image = new ImageIcon (data) //where data is byte[] data

然后创建你的JLabel:

JLabel label = new JLabel(image) 

要决定如何定位图像,请将JLabel添加到具有所需LayoutManager的JPanel中。