JLabel - obrazek nie wyświetla się

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


public class mrj implements ActionListener{
 JLabel label;
 ImageIcon img;
 JButton zmiana;


         
 mrj(){

JFrame f = new JFrame();
     
  f.setSize(600,400);
  f.setLayout(null);
  f.setVisible(true);
  
img = new ImageIcon("2.gif");


  label = new JLabel(img);
  label.setBounds(30, 30, 300, 300);  
    
       zmiana = new JButton (img);
       zmiana.addActionListener(this);
       zmiana.setBounds(30, 300, 70, 40);   
    
    f.add(label);    
    f.add(zmiana); 
 
 }
 
    public static void main(String[] args) {
       
        new mrj();
       
    }

    public void actionPerformed(ActionEvent e) {
        
        Object o = e.getSource();
       if (o==zmiana)
       {

      
       }
        
    }

}

Czemu obrazek się nie wyświetla? Przejrzałem wiele tutoriali i powinno być wszystko ok a nie jest ;/

0

wszystko dziala. widocznie nie moze znalezc 2.gif

0

Racja. Obrazki wrzuca się gdzie indziej niż w Apletach. A co zrobić żeby na starcie wszystko się pokazywało? Bo inaczej muszę rozciągnąć okno czy coś...

0

nie rozumiem. wszystko pokazuje sie w chwili jak wywolujesz f.setVisible(true);

0

No i właśnie nie pokazuje się. Przykładowo przycisk pojawi mi się jak na niego najadę myszką albo rozciągnę okno. Tak jakby brakowalo jednego odświeżenia na początku.

0

sprawdzilem kompilujac z palca i przez NetBeans i w obu przypadkach wszystko od razu sie pokazuje. czego uzywasz?

podejrzewam ze jak dodasz
label.updateUI();
zmiana.updateUI();
to rozwiaze Twoj problem ale jak mowie, wszystko powinno dzialac (bo u mnie dziala) i powinienes sie obejsc bez tego

btw brakuje f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

0

Przyczyna tkwi zapewne w rozmiarze obrazka, autor postu używa takiego który się nie mieści w przydzielonym obszarze. Spróbuj tak:

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


public class mrj implements ActionListener{
 JLabel label;
 ImageIcon img;
 JButton zmiana;


         
 mrj(){

JFrame f = new JFrame();
     
  //f.setSize(600,400);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  //f.setLayout(null);
  f.setVisible(true);

img = new ImageIcon("2.gif");


  label = new JLabel(img);
  label.setBounds(30, 30, 300, 300);

       zmiana = new JButton (img);
       zmiana.addActionListener(this);
       zmiana.setBounds(30, 300, 70, 40);

    f.add(label,BorderLayout.CENTER);
    f.add(zmiana,BorderLayout.SOUTH);
    f.pack();
    f.setLocationRelativeTo(null); //centrowanie okna

 }
 
    public static void main(String[] args) {
       
        new mrj();
       
    }

    public void actionPerformed(ActionEvent e) {
       
        Object o = e.getSource();
       if (o==zmiana)
       {

     
       }
       
    }

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1