如何在窗口中移动图像?

时间:2014-04-13 02:29:25

标签: java swing jpanel layout-manager

enter image description here我无法弄清楚如何移动和成像到窗口中的其他位置。我读到了BorderLayout,但我不确定如何实现它。我想将汽车放在文本区域上方,那么我会以某种方式使用BorderLayout.NORTH吗?

b3.addActionListener(new ActionListener() {
        /**
         * Displays the arraylist.
         */
        public void actionPerformed(ActionEvent e) {

            if (cars.size()>0){

                ImageIcon icon = new ImageIcon(Window.class.getResource("/car.png"));
                StringBuilder sb = new StringBuilder();


                for(int i=0; i < cars.size(); i++) {
                    sb.append("Car " + (i+1) + ": " + cars.get(i) + "\n");
                }

                Font font = new Font("Times New Roman", Font.PLAIN, 14);
                JTextArea textArea = new JTextArea(sb.toString());
                JScrollPane scrollPane = new JScrollPane(textArea); 
                textArea.setFont(font);
                textArea.setForeground(Color.BLACK);
                textArea.setLineWrap(true);
                textArea.setEditable(false);
                textArea.setWrapStyleWord(true); 
                scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                scrollPane.setPreferredSize(new Dimension( 100, 125 ));
                JOptionPane.showMessageDialog(null, scrollPane, "Inventory", JOptionPane.PLAIN_MESS![enter image description here][2]AGE, icon);
            }
            else {
                JOptionPane.showMessageDialog(null, "No cars in inventory", "Error", JOptionPane.ERROR_MESSAGE);
            }


        }

    });

2 个答案:

答案 0 :(得分:3)

你说:

  

我无法弄清楚如何移动和成像到窗口中的不同位置。

您需要告诉我们您问题的详细信息。你的形象现在在哪里?您希望GUI看起来像什么?细节很重要。

  

我读到了有关BorderLayout但我不确定如何实现它。

您对本教程感到困惑的是什么?

  

我没把车放在textarea上面所以我会以某种方式使用BorderLayout.NORTH吗?

通常在向BorderLayout使用容器添加组件时使用BorderLayout常量,例如BorderLayout.NORTH。通过“添加”,我的意思是调用容器的add(...)方法,您首先将要添加到容器的组件传递给此方法,然后将常量告诉BorderLayout布局管理器,您希望在哪里添加它。

如,

JPanel container = new JPanel(new BorderLayout());
JLabel label = new JLabel("North Label");
container.add(label, BorderLayout.NORTH);

但是,您需要阅读本教程的详细信息。链接:

答案 1 :(得分:2)

如果要将图片放在不同的部分,请使用边框布局功能。你可以拥有像CENTER,NORTH,SOUTH,WEST,EAST等的东西。

以下是如何实施它:

setLayout(new BorderLayout());
JPanel southPanel = new JPanel();
southPanel.add(PICTUREGOESHERE);
add(southPanel, BorderLayout.SOUTH);

首先,将布局设置为Border Layout。 他们你创建另一个JPanel。 您将组件添加到JPanel。 您将JPanel添加到主JFrame。