JLabel - obrazek nie wyświetla się

Odpowiedz Nowy wątek
2010-03-20 20:05
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 ;/

Pozostało 580 znaków

2010-03-20 21:12
0

wszystko dziala. widocznie nie moze znalezc 2.gif

Pozostało 580 znaków

2010-03-20 22:48
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ś...

Pozostało 580 znaków

2010-03-20 22:54
0

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

Pozostało 580 znaków

2010-03-20 23:20
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.

Pozostało 580 znaków

2010-03-20 23:32
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);

Pozostało 580 znaków

2010-03-21 09:13
bo
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)
       {

       }

    }

}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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