Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 将图像添加到JFrame内部的现有JPanel_Image_Jframe_Jpanel - Fatal编程技术网

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

Image 将图像添加到JFrame内部的现有JPanel,image,jframe,jpanel,Image,Jframe,Jpanel,所以,我在AP计算机科学课上,我们的最后一个项目是制作一个程序,展示我们所学的一系列不同的概念。其中两个是显示图像和添加按钮 我决定做一个简单的基于决策的rpg,显示是否有其他分支。我想出了如何在菜单中获得一个带有开始按钮的菜单,并打开了一个输入对话框。但我不知道如何将图像添加到按钮所在的JFrame中。您知道,所以它会在按钮上方或下方显示图像。我学习了如何显示图像,但示例都是只显示图像的扩展类。我不知道如何在现有代码中调用某种draw或BuffereImage方法,也不知道将其放置在何处。也许

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

我决定做一个简单的基于决策的rpg,显示是否有其他分支。我想出了如何在菜单中获得一个带有开始按钮的菜单,并打开了一个输入对话框。但我不知道如何将图像添加到按钮所在的JFrame中。您知道,所以它会在按钮上方或下方显示图像。我学习了如何显示图像,但示例都是只显示图像的扩展类。我不知道如何在现有代码中调用某种draw或BuffereImage方法,也不知道将其放置在何处。也许我可以调用另一个包含图像代码的类?这是我到目前为止所拥有的

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。非常感谢您的帮助。

您可以使用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) 

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

完美,JLabel确实有效。我将它添加到我的JPanel中,现在唯一的事情是它使整个面板成为一个按钮!我会解决的,谢谢。