如何在 Java 中将 JLabel 转换为 Button?
How do you convert a JLabel to a Button in Java?
我有一个带有 T 恤 ImageIcons 的 JLabel。我想让每件 T 恤都具有被点击的能力,然后它会导致另一件 window。如何在保持图片的同时让每件 T 恤成为一个按钮?
这只是我的方法之一,我希望衬衫成为 JButton。
这是我的代码:
final JFrame shirts = new JFrame("T-shirts");
JPanel panel = new JPanel(new GridLayout(4, 4, 3, 3));
for (int i = 1; i < 13; i++) {
l = new JLabel(new ImageIcon("T-shirts/"+i+".jpg"), JLabel.CENTER);
l.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
l.setFont(l.getFont().deriveFont(20f));
panel.add(l);
}//end of for loop
shirts.setContentPane(panel);
shirts.setSize(1000, 1000);
shirts.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
shirts.setVisible(true);
无需更改为 JButton。这里最简单的选择是实现 MouseListener。
这将允许您测试鼠标单击事件:
yourLabelName.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
//point to the frame you want it to go to from here
yourFrame = new JFrame("Next JFrame");
frame.setVisible(true);
}
});
UPDATE
shirts.this.add(l);
这会将标签添加到下一个 JFrame
希望对您有所帮助。
让我知道结果:)
我有一个带有 T 恤 ImageIcons 的 JLabel。我想让每件 T 恤都具有被点击的能力,然后它会导致另一件 window。如何在保持图片的同时让每件 T 恤成为一个按钮? 这只是我的方法之一,我希望衬衫成为 JButton。 这是我的代码:
final JFrame shirts = new JFrame("T-shirts");
JPanel panel = new JPanel(new GridLayout(4, 4, 3, 3));
for (int i = 1; i < 13; i++) {
l = new JLabel(new ImageIcon("T-shirts/"+i+".jpg"), JLabel.CENTER);
l.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
l.setFont(l.getFont().deriveFont(20f));
panel.add(l);
}//end of for loop
shirts.setContentPane(panel);
shirts.setSize(1000, 1000);
shirts.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
shirts.setVisible(true);
无需更改为 JButton。这里最简单的选择是实现 MouseListener。
这将允许您测试鼠标单击事件:
yourLabelName.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
//point to the frame you want it to go to from here
yourFrame = new JFrame("Next JFrame");
frame.setVisible(true);
}
});
UPDATE
shirts.this.add(l);
这会将标签添加到下一个 JFrame
希望对您有所帮助。
让我知道结果:)