Добавить изображение на панель для отображения - PullRequest
0 голосов
/ 23 января 2020
Код

My java ниже содержит 2 кнопки и ImageIcon. Я хочу, чтобы изображение отображалось. Я получаю сообщение об ошибке. Слушатель. java: 32: ошибка: не удается найти символ Изображение значка. Поэтому, несмотря на то, что я пишу этот код java, способ, которым я пытаюсь написать решение для изображения, не работает. Это кажется простым исправлением.

    import java.awt.BorderLayout;
    import java.awt.GridLayout;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;
     import javax.swing.*;


   public class Listener extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
public int act = 0;
private JLabel label1,label2;

public Listener(){
    setTitle("Question");
    JPanel Panel1 = new JPanel();
    Panel1.setLayout(new BorderLayout());

    JPanel Panel2 = new JPanel();
    Panel2.setLayout(new GridLayout(4,1));


    JLabel myButton1 = JLabel(new ImageIcon("c:/Users/johnzalubski/Desktop/j/gg.jpg"));


    JButton myButton2 = new JButton("2:Tuesday");
    JButton myButton3 = new JButton("3:Wednesday");

    label1= new JLabel("What day is it today?");
    label2= new JLabel("Select the answer");

    myButton2.addActionListener(this);
    myButton3.addActionListener(this);

    Panel2.add(myButton1);
    Panel2.add(myButton2);
    Panel2.add(myButton3);

    Panel1.add(Panel2,BorderLayout.CENTER);
    Panel1.add(label1,BorderLayout.NORTH);
    Panel1.add(label2,BorderLayout.SOUTH);
    add(Panel1);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(320, 240);

    setVisible(true);
}
public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand() !=  "4:Thursday")
        label2.setText("false");
    else
        label2.setText("true");
}
public static void main(String[] args) {
    new Listener();
}}

enter image description here

1 Ответ

0 голосов
/ 23 января 2020

Первое, что у вас произошла ошибка компиляции. Вы пропустили new при создании экземпляра JLabel. Вы также можете добавить префикс буквы диска к пути. Когда я исправил это с помощью своего собственного изображения, это сработало.

JLabel myButton1 = new JLabel(new ImageIcon("c:/Users/johnzalubski/Desktop/j/gg.jpg"));

И вот совет.

Прямо перед тем, как вы frame.setVisible(true); сделаете следующее:

frame.setLocationRelativeTo(null);

Он будет центрировать его на экране.

И если вы не переопределяете что-то в JFrame (что редко требуется), просто создайте экземпляр вместо его расширения.

...