Hej!
Przy wyświetleniu zdjęć z JFileChooser nie pojawią mi się JScrollPane'y i zupełnie nie rozumiem dlaczego.
Gdyby dla kogoś mój błąd był oczywisty i rzucił się w oczy, proszę uprzejmie o podpowiedź!
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
public class MyFrame extends JFrame{
public MyFrame() {
super("to moja ramka");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLocation(400,200);
setSize(400,400);
createMenuBar();
}
private void createMenuBar(){
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);//sets the menubar for the JFrame container.
JFrame mainFrame = new JFrame ();
JMenu fileMenu = new JMenu("Menu");
menuBar.add(fileMenu);
JMenuItem closeMenuItem = new JMenuItem("Close");
closeMenuItem.addActionListener(e -> System.exit(0));//zamyka cale okno
closeMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK));//pokazuje skrot klawiszowy
closeMenuItem.setToolTipText("Close Application");
JMenuItem openMenuItem = new JMenuItem("Open Image");
openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.SHIFT_MASK));
openMenuItem.setToolTipText("Open Image from the file");
JFileChooser fileChooser = new JFileChooser();
JTextField textField = new JTextField(100);
JLabel label = new JLabel();
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
JScrollPane scrollPane = new JScrollPane(label);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(scrollPane, BorderLayout.CENTER);
openMenuItem.addActionListener(event -> {
int code = fileChooser.showOpenDialog(mainFrame);
if(code ==JFileChooser.APPROVE_OPTION) {
String path = fileChooser.getSelectedFile().getPath();
textField.setText(path);
label.setIcon(new ImageIcon(path));
}
});
add(label);
fileMenu.add(openMenuItem);
fileMenu.addSeparator();
fileMenu.add(closeMenuItem);
}
}
to wszystko uruchamiam sobie w osobnej klasie main.
Dzięki!