Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat is going wrong with my border layout in my swing app?
    primarykey
    data
    text
    <p>I have a simple app where I want to show a large image in a scrollable panel. I'm using NavigableImagePanel from <a href="http://today.java.net/pub/a/today/2007/03/27/navigable-image-panel.html" rel="nofollow noreferrer">http://today.java.net/pub/a/today/2007/03/27/navigable-image-panel.html</a> </p> <p>Firstly the result I'm getting - <img src="https://i.stack.imgur.com/kW0HP.jpg" alt="Rotate and Resize"></p> <p>The image is currently a very small panel near the top buttons. This is with BorderLayout.CENTER</p> <p>The code for NavigableImagePanel: </p> <p><a href="http://pastebin.com/1wHRwMJU" rel="nofollow noreferrer">http://pastebin.com/1wHRwMJU</a></p> <p>and my OpenImage.java code: </p> <pre><code>import java.awt.*; import java.awt.event.*; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class OpenImage extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 9066218264791891436L; Image img; public OpenImage() throws IOException{ super("Resize and Rotate"); setDefaultCloseOperation(EXIT_ON_CLOSE); BorderLayout grid = new BorderLayout(); //this.setLayout(grid); setSize(900,700); setVisible(true); //Row 1 holds some important buttons //FlowLayout layout1 = new FlowLayout(); //MigLayout mig = new MigLayout(); JPanel row1 = new JPanel(); //LayoutManager grid = new BoxLayout(row1, BoxLayout.X_AXIS); //row1.setLayout(grid); //row1.setLayout(BorderLayout.NORTH); //row1.setMaximumSize(new Dimension(100,100)); BorderLayout border = new BorderLayout(); //row1.setPreferredSize(new Dimension(0, 400)); JButton open = new JButton ("Open"); open.addActionListener(this); JButton rotate = new JButton("Rotate"); rotate.addActionListener(this); JButton resize = new JButton("Resize"); resize.addActionListener(this); JButton exit = new JButton ("Exit"); exit.addActionListener(this); row1.add(open); row1.add(rotate); row1.add(resize); row1.add(exit); //This section has a workable picture panel, but it is too large. //ImagePanel imagepanel = new ImagePanel(); BorderLayout grid1 = new BorderLayout(); Container cp = getContentPane(); cp.setLayout(grid1); //add(row1); //JScrollPane row2 = new JScrollPane(imagepanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); BufferedImage img = ImageIO.read(new File("/home/adam/snow.jpg")); NavigableImagePanel imagepanel = new NavigableImagePanel(img); JPanel row2 = new JPanel(); row2.add(imagepanel); //row2.repaint(); JButton save = new JButton("Save"); JPanel row3 = new JPanel(); row3.add(save); cp.add(BorderLayout.NORTH, row1); cp.add(BorderLayout.CENTER, row2); cp.add(BorderLayout.SOUTH, row3); } public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command == "Exit"){ System.exit(0); } if (command == "Open"){ JFileChooser chooser = new JFileChooser(); int returnVal = chooser.showOpenDialog(this); } } //This method below is now being deprecat public static void main(String [] args){ try { //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch (UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } catch (IllegalAccessException ex) { ex.printStackTrace(); } catch (InstantiationException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } UIManager.put("swing.boldMetal", Boolean.FALSE); try { JFrame frame = new OpenImage(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload