Добавление изображения в существующую JPanel внутри JFrame - PullRequest
0 голосов
/ 11 мая 2011

Итак, я нахожусь в классе AP Computer Science, и наш последний проект - создать программу, которая отображает множество различных понятий, которые мы изучили. Два из которых отображают изображения и добавляют кнопки.

Я решил сделать просто сырный рпг, основанный на принятии решений, который показывает ветвление 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);
  }
}

И я уже импортировал кучу пакетов, я просто не включил это в код, о, и это тоже обычный класс приложения, а не апплет. Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 11 мая 2011

Вы можете использовать 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 в JPanel с нужным LayoutManager.

...