我无法弄清楚如何移动和成像到窗口中的其他位置。我读到了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);
}
}
});
答案 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。