我正在尝试使用Java Swing为学校项目创建地图应用程序。有一些地图(使用jpg格式)将使用JComboBox选择,因此我有一种方法可以在JPanel中显示图像(在JScrollPane中),该图像采用的图像路径根据JComboBox的选择而变化。
现在,我具有基于另一个JComBoBox选择的全局变量x和y坐标,并且需要在图像上的坐标处放置一个标记。我该怎么办?
public static void displayImage(String path, JPanel panel, JLabel label) {
try {
image = ImageIO.read(new File(path));
} catch (IOException e1) {
e1.printStackTrace();
}
panel.removeAll();
panel.add(new JLabel(new ImageIcon(new ImageIcon(image).getImage().getScaledInstance(1920, 1080, Image.SCALE_SMOOTH))));
panel.revalidate();
panel.repaint();
}
以及在JscrollPane和JPanel的主要功能中:
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(245, 11, 1010, 659);
frame.getContentPane().add(scrollPane);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
label = new JLabel();
scrollPane.setViewportView(panel);
我曾尝试制作自定义视口并在其上绘制标记,但它不会随图像滚动(标记在图像滚动时位于同一位置)
我需要在图像的坐标上放置一个标记。
您发布的代码与您正在谈论的此“标记”无关。
我尝试制作自定义视口并在其上绘制标记,但它不会随图像滚动
如果要进行自定义绘制,则需要在标签(而不是滚动窗格)上进行自定义绘制。
addMarker(Marker)
的方法。 Marker对象将存储在ArrayList或另一种方法是将每个标记图像的JLabel对象添加到主JLabel。基本步骤是: