Witajcie :)
Wybaczcie proszę, jeśli jest to bardzo proste pytanie. Jestem świeżo po książce "Java, ćwiczenia praktyczne" Marcina Lisa, wydanie II. Jak to zwykle z takimi książkami bywa - wprowadzą w podstawy podstaw, jednak informacje z tego typu książek nie wprowadzają w nic głębszego i po ukończeniu publikacji nie potrafi się w zasadzie nic konkretnego ;-)
Chciałbym napisać prostą przeglądarkę obrazów - klika się w menu Otwórz, wybiera za pomocą JFileChoosera grafikę i ta ładuje się w obrębie GUI. GUI już jest - niestety nie wiem jak sprawić, aby po wybraniu grafiki i kliknięciu OK, ta się załadowała. Oczywiście przydałoby się jeszcze jakieś rozróżnienie jakie formaty program obsługuje, a jakie nie (aby do programu nie szło załadować plików xml czy doc, a tylko graficzne np. o konkretnym rozszerzeniu) - niemniej to może na później.
Kod:
import javax.swing.*;
import java.awt.event.*;
public class KImage extends JFrame implements ActionListener {
public KImage() {
super();
setTitle("KImage browser");
setSize(640, 480);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
JMenu menu1 = new JMenu("Plik");
JMenu menu2 = new JMenu("Pomoc");
JMenuItem menu1Item1 = new JMenuItem("Otwórz");
JMenuItem menu1Item2 = new JMenuItem("Zamknij");
JMenuItem menu2Item1 = new JMenuItem("O programie");
menu1Item1.addActionListener(this);
menu1Item2.addActionListener(this);
menu2Item1.addActionListener(this);
menu1Item1.setActionCommand("Open");
menu1Item2.setActionCommand("Close");
menu2Item1.setActionCommand("About");
menu1.add(menu1Item1);
menu1.add(menu1Item2);
menu2.add(menu2Item1);
setJMenuBar(menuBar);
menuBar.add(menu1);
menuBar.add(menu2);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if("About".equals(cmd)){
JOptionPane.showMessageDialog(this, "KImage - simple image viewer.", "Informacja!", JOptionPane.INFORMATION_MESSAGE);
}
else if("Close".equals(cmd)){
dispose();
}
else if("Open".equals(cmd)){
JFileChooser fc = new JFileChooser();
if(fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
fc.getSelectedFile();
}
}
}
public static void main (String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new KImage();
}
});
}
}
Prosiłbym tylko, jeśli to nie kłopot, o jakąś prostą odpowiedź - przy skomplikowanym kodzie bez objaśnienia, mógłbym się zagubić :( Aczkolwiek być może jest gdzieś jakieś konkretne how-to poświęcone temu zagadnieniu?
Dziękuję, jeśli ktoś zechciałby nakierować mnie na rozwiązanie.