Почему изображение не показано здесь? - PullRequest
0 голосов
/ 30 мая 2018

Я хочу отобразить изображение на JFrame через JLabel, но отображается только JFrame.И, пожалуйста, скажите это в noob :) Вот код:

import javax.swing.*; 
import java.awt.*;

public class Swing extends JFrame{
    public JLabel label;
    public ImageIcon image;

    public Swing() {
        setLayout(new FlowLayout());
        image = new ImageIcon ("image.png");
        label = new JLabel (image);
        add(label);
    }
    public static void main (String [] args) {
        System.out.println("some text.");
        JFrame frame = new JFrame();

        frame.setVisible(true);
        frame.setSize(2300, 1717);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocation(300, 100);
        frame.setTitle("title");

        frame.requestFocus();
        frame.addKeyListener(new KeyHandler());     
    }


 }

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Возможно, застрахован от этого

   JFrame frame = new JFrame();

Вы хотели это

   JFrame frame = new Swing();
0 голосов
/ 30 мая 2018

Изображение не отображается, потому что вы не сказали программе, чтобы оно отображалось.

В Java функция main содержит то, что ваш компьютер будет запускать и компилировать.

Я бы определил изображение так же, как вы, но в основной, и важная часть заключается в том, чтобы сообщить вашей программе, чтобы оно отображалось.

Попробуйте:

JFrame frame = new JFrame();
ImageIcon icon = new ImageIcon("image.jpg");
JLabel label = new JLabel(icon);
frame.add(label);
frame.setDefaultCloseOperation
     (JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);

}

Надеюсь, это поможет,

...