Проблема с графическим интерфейсом Java: не отображается в фоновом режиме - PullRequest
1 голос
/ 05 января 2011

У меня вопрос о том, почему мое изображение не отображается в фоновом режиме моей программы. Я имею в виду, что я сделал все необходимые шаги, и все же это не будет отображаться. Код работает отлично, но без отображения изображения. Каталог написан в хорошем месте изображения. Я использую Java с графическим интерфейсом. Если бы кто-нибудь мог помочь мне решить мою проблему, я был бы признателен :) вот код ниже:

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

public class hehe extends JPanel{

    public hehe(){

            setOpaque(false);
            setLayout(new FlowLayout()); 
          }

    public static void main (String args[]){
           JFrame win = new JFrame("yooooo"); // it is automaticcally hidden

           JPanel mainPanel = new JPanel(new BorderLayout()); 
                win.add(mainPanel);

     JLabel titleLabel = new JLabel("title boss"); 
           titleLabel.setFont(new Font("Arial",Font.BOLD,18)); 
           titleLabel.setForeground(Color.blue);
           mainPanel.add(titleLabel,BorderLayout.NORTH);

           win.setSize(382,269); // the dimensions of the image
           win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           win.setVisible(true);
        }


            public void paint(Graphics g) {

                      Image a = Toolkit.getDefaultToolkit().getImage("C:\\Users\\andrea\\Desktop\\Gui\\car"); // car is the name of the image file and is in JPEG
                g.drawImage(a,0,0,getSize().width,getSize().height,this);
                super.paint(g);
            }
            }

Ответы [ 2 ]

1 голос
/ 05 января 2011

В предоставленном вами коде нет ссылки на класс hehe в вашем методе main (). Я предполагаю, что вы захотите создать этот объект и добавить его в свое окно.

Также вам необходимо включить расширение .jpg в имя файла

1 голос
/ 05 января 2011

super.paint () рисует фон после покраски вашего изображения, и ваше изображение скрыто.Попытайтесь установить setOpaque (false) или изменить порядок вызова super.paint () перед рисованием изображения.

Также избегайте получения изображения в методе paint ().Paint вызывается очень часто, поэтому вы каждый раз читаете свое изображение в paint ().Создайте поле для изображения и прочитайте его один раз при создании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...