W jaki sposób skalowac obraz w JLabel żeby widoczna była calos nie tylko cześć tak jak ponizej:
0
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
- 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));