gpt4 book ai didi

java - 如何为 JScrollPane 的视口(viewport)绘制引导标记

转载 作者:行者123 更新时间:2023-12-01 18:09:47 26 4
gpt4 key购买 nike

我有 JFrame,它包含一个 Jscrollpane,而 Jscrollpane 又包含一个 Jpanel,其中显示图像。所有鼠标事件和绘图都遵循 Jpanel 坐标。现在,我想在视口(viewport)顶部放置一个引导线标记,无论图像如何缩放或平移,标记都应保持不变。最好的方法是什么?提前致谢。

/image/m4qe2.png

最佳答案

您可以在滚动 Pane 的视口(viewport)上进行自定义绘画:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;

public class ViewportBackground
{
private static void createAndShowUI()
{
JViewport viewport = new JViewport()
{
@Override
protected void paintChildren(Graphics g)
{
super.paintChildren(g);
int w = this.getWidth();
int h = this.getHeight();
g.drawLine(0, 0, w, h);
}
};

JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewport(viewport);
scrollPane.setViewportView( new JLabel( new ImageIcon(...) ) );

JFrame frame = new JFrame("Viewport Background");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add( scrollPane );
frame.setLocationByPlatform( true );
frame.pack();
frame.setVisible( true );
}

public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowUI();
}
});
}
}

关于java - 如何为 JScrollPane 的视口(viewport)绘制引导标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com