Skalowanie obrazu w JLabel.

0

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

Przechwytywanie.JPG

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);
}
}
});
0
  1. Wczytaj obrazek i przeskaluj metodą getScaledInstance(...).
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));
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);
		 		}
		 	     
		 	}
		 });

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));

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