Java GUI Swing JScrollPane

0

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!

1
add(panel);

zamiast

add(label);
0

dziękuję bardzo! Siedziałam nad tym dwa dni i nie zauważyłam :)

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