Skalowanie obrazu w JLabel.

2015-03-09 09:48

Rejestracja: 10 lat temu

Ostatnio: 11 godzin temu

0

W jaki sposób skalowac obraz w JLabel żeby widoczna była calos nie tylko cześć tak jak ponizej:

Przechwytywanie.JPG

A co ma obraz wspólnego z JLabel? - furious programming 2015-03-09 14:41
Chodzi o to, że mam ImageIcon wstawiony do JLabel ale wstawianie przez setIcon nie wystarczy zebym widzial caly obrazek w ramkach JLabel - davyd 2015-03-09 16:53
Tak tylko pytam, bo to brzmi dziwnie... ;) - furious programming 2015-03-09 16:55
@furious programming, brzmi dziwnie. Ale JLabel w Javie może wyświetlać: tylko tekst, tylko obrazek, nic, tekst i obrazek. Początek dokumentacji: A display area for a short text string or an image, or both.. Dla tradycjonalistów;) jest klasa Label, która wyświetla tylko tekst. - bogdans 2015-03-10 09:48
Ok, dzięki za przybliżenie tematu :) - furious programming 2015-03-10 13:40

Pozostało 580 znaków

2015-03-10 14:24

Rejestracja: 10 lat temu

Ostatnio: 11 godzin temu

0

Przycisk "wybierz" uruchamia JFileChooser, jaki jest sposób żeby zaalarmować wyskakującym JOptionPane kiedy uzytkownik próbuje wstawiać obrazek który ma zbyt dużo pikseli ?


przyciskWybierzObraz = new JButton("Wybierz obraz");
przyciskWybierzObraz.setBorder(obramowanie3);
przyciskWybierzObraz.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) 
{
int result = wybierzObraz.showOpenDialog(przyciskWybierzObraz);
if (result == JFileChooser.APPROVE_OPTION)
{
String name = wybierzObraz.getSelectedFile().getPath();
etykietaObrazu.setIcon(new ImageIcon(name));
obraz = new ImageIcon(name);
}
}
});

Pozostało 580 znaków

2015-03-10 17:06
Moderator

Rejestracja: 11 lat temu

Ostatnio: 1 dzień temu

0
  1. Wczytaj obrazek i przeskaluj metodą getScaledInstance(...).
  2. String name = wybierzObraz.getSelectedFile().getPath();
    ImageIcon test = new ImageIcon(name);
    if(test.getIconWidth() > ... || test.getIconHeight() > ...)
    {
     JOptionPanel.showMessageDialog(...);
     return;
    }
    obraz = new ImageIcon(name);
    etykietaObrazu.setIcon(new ImageIcon(name));

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2015-03-10 17:08

Pozostało 580 znaków

2015-03-11 08:30

Rejestracja: 10 lat temu

Ostatnio: 11 godzin temu

0

Wykorzystałem getScaledInstance ale mam problem jak teraz ustawic zeskalowany obiekt do JLabel, metoda setIcon wyrzuca błąd. Mozna zamienić Image na ImageIcon ?


przyciskWybierzObraz = new JButton("Wybierz obraz");
         przyciskWybierzObraz.setBorder(obramowanie3);
         przyciskWybierzObraz.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) 
            {
                 int result = wybierzObraz.showOpenDialog(przyciskWybierzObraz);
                if (result == JFileChooser.APPROVE_OPTION)
                {

                String name = wybierzObraz.getSelectedFile().getPath();

                etykietaObrazu.setIcon(new ImageIcon(name));
                obraz = new ImageIcon(name);
                Image skalowanie = obraz.getImage().getScaledInstance((int)80, (int)80, Image.SCALE_DEFAULT);
                etykietaObrazu.setIcon(skalowanie);
                }

            }
         });

Pozostało 580 znaków

2015-03-11 10:23

Rejestracja: 7 lat temu

Ostatnio: 6 miesięcy temu

0

@davyd postaraj się zapytać googla najpierw. Umiejętność szukania rozwiązań/rozwiązywania problemów samodzielnie jest kluczowa dla programisty.
Wpisując nawet:
Image to ImageIcon
masz gotowe rozwiązanie.
ImageIcon przyjmuje w konstruktorze Image czyli

etykietaObrazu.setIcon(new ImageIcon(skalowanie));
dzieki ale racja z tym, że powinienem poswiecić wiecej czasu na szukanie w google. Chodzi o to, że jestem juz na ostatnich poprawkach w swojej pierwszej wiekszej aplikacji wiesz jak jest im jesteś bliżej końca tym chcialbyś to szybciej ukończyć :) - davyd 2015-03-11 10:51

Pozostało 580 znaków

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