Witam, jestem początkującym programistą. Mam do napisania program, w którym gdy wrzucimy jakieś zdjęcie będzie można wybrać odpowiednią kategorię. Można by powiedzieć, że prawie już skończyłem, ale nie mogę wyświetlić zdjęcia w danej kategorii. W programie po wciśnięciu przycisku "Wybierz..." można wybrać jedno zdjęcie, a po wciśnięciu np."Miasto" otwiera się nowe okienko i tam powinny być wyświetlone zdjęcia. Myślę, że jest to związane z Labelem, w którym ma być wyświetlone zdjęcie. Poniżej załączam kod programu. Z góry dziękuję za pomoc, Pozdrawiam.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Arrays;
import javax.swing.*;
public class Main extends JFrame {
private static JLabel Obraz;
public static void main(String[] args) {
JFrame Katalog = new JFrame("Katalogowanie");
Katalog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JDesktopPane desktop = new JDesktopPane();
JPanel top = new JPanel();
final JButton Wybierz = new JButton("Wybierz zdjęcie");
Wybierz.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Otwórz();
}
public void Otwórz() {
{
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter(){
public boolean accept(File f){
String name = f.getName().toLowerCase();
return name.endsWith(".gif")
|| name.endsWith(".jpg")
|| name.endsWith(".jpeg")
|| f.isDirectory();
}
public String getDescription(){
return "Image files";
}
});
int r = chooser.showOpenDialog(chooser);
if(r == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getAbsolutePath().replace('\\', '/');
System.out.println(name);
String [] wybor = {"Miasto","Ludzie","Samochody","Lasy"};
String ans = (String) JOptionPane.showInputDialog(Katalog,"Wybierz kategorię","Kategoria",
JOptionPane.QUESTION_MESSAGE,null,wybor,wybor[0]);
System.out.println(Arrays.toString(wybor));
if(ans == "Miasto"){
ImageIcon image = new ImageIcon(name);
Obraz.setIcon(image);
Graphics g = Obraz.getGraphics();
g.drawImage(image.getImage(), 0, 0, null);
}
if (ans == "Ludzie"){
ImageIcon image = new ImageIcon(name);
Obraz.setIcon(image);
Graphics g = Obraz.getGraphics();
g.drawImage(image.getImage(), 0, 0, null);
}
if (ans == "Samochody"){
ImageIcon image = new ImageIcon(name);
Obraz.setIcon(image);
Graphics g = Obraz.getGraphics();
g.drawImage(image.getImage(), 0, 0, null);
}
if (ans == "Lasy"){
ImageIcon image = new ImageIcon(name);
Obraz.setIcon(image);
Graphics g = Obraz.getGraphics();
g.drawImage(image.getImage(), 0, 0, null);
}
}
}
}
});
final JButton Miasto = new JButton("Miasta");
Miasto.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
final JInternalFrame newWindow = new JInternalFrame(("Miasta"), true, true, true, true);
//1st boolean - Resizable //2nd boolean - Closable //3rd boolean - Maximizable //4th boolean - Iconifiable
JLabel Obraz = new JLabel("Ten obraz");
JPanel t = new JPanel();
t.add(Obraz);
newWindow.add(t,BorderLayout.NORTH);
newWindow.setVisible(true);
newWindow.setSize(300, 240);
newWindow.setMinimumSize(new Dimension(300, 240));
desktop.add(newWindow);
newWindow.moveToFront();
}
});
top.add(Miasto);
top.add(Ludzie);
top.add(Samochody);
top.add(Lasy);
top.add(Wybierz);
Katalog.add(BorderLayout.NORTH, top);
Katalog.add(BorderLayout.CENTER, desktop);
Katalog.setSize(500, 500);
Katalog.setVisible(true);
Katalog.setLocationRelativeTo(null);
}
}