gpt4 book ai didi

java - Swing - 不使用滚动条滚动 JFrame 内容

转载 作者:行者123 更新时间:2023-12-02 00:29:00 26 4
gpt4 key购买 nike

我有以下问题。有没有一种方法可以在不使用滚动条的情况下滚动 Jframe 内容,只需在代码中以编程方式完成即可。我里面有 Japplet,但我找不到在不显示滚动条的情况下滚动其内容的方法。整个滚动操作不应在用户操作时执行,而应在我的线程想要执行时执行。等待帮助,谢谢。

我找不到任何方法可以做到这一点。我试图将我的组件(Applet)添加到 Jscrollpane 和 jframe,但它会导致仅显示白色屏幕的情况。

JFrame 类:

public class SimulationFrame extends JFrame {

private SimulationWindow simulationWindow;

public SimulationFrame() throws HeadlessException {
super(PropertiesHelper.getWindowTitle());

simulationWindow = new SimulationWindow();
JScrollPane scrollPane = new JScrollPane(simulationWindow);
this.getContentPane().add(scrollPane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setVisible(true);
}
}

JComponent:

    public SimulationWindow() {

setLayout(new BorderLayout());

graph = GraphHelper.provideGraphInstance();

Dimension layoutSize = new Dimension(PropertiesHelper.getGraphHolderWidth(),
PropertiesHelper.getGraphHolderHeight());
graphLayout = new StaticLayout<Checkpoint, Route>(graph, new CheckpointPositionTransformer());
graphLayout.setSize(layoutSize);

visualizationViewer = new VisualizationViewer<Checkpoint, Route>(graphLayout, new Dimension(
PropertiesHelper.getWindowWidth(), PropertiesHelper.getWindowHeight()));

visualizationViewer.getRenderContext().setVertexLabelTransformer(new CheckpointLabelTransformer());
visualizationViewer.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR);
visualizationViewer.getRenderContext().setVertexFillPaintTransformer(new CheckpointColorTransformer());
visualizationViewer.getRenderContext().setEdgeDrawPaintTransformer(new RouteColorTransformer());
visualizationViewer.getRenderContext().setEdgeLabelTransformer(new RouteLabelTransformer());

final ImageIcon mapBackground = createMapBackground();

if (mapBackground != null) {
mapBackgroundImagePaintable = new BackgroundImagePaintable(visualizationViewer, mapBackground);
visualizationViewer.addPreRenderPaintable(mapBackgroundImagePaintable);
}
add(visualizationViewer);
scrollRectToVisible(new Rectangle(1000,100));

}

VisualizationViewer 是一个扩展 JPanel 的类。将scrollRectToVisible 放入此构造函数中不起作用。

有什么建议吗?也许这个实现是错误的,其中 Jcomponent 包含 Jpanel 本身?

最佳答案

使用方法

public void scrollRectToVisible(Rectangle aRect)

在 JScrollPane 中添加的 JComponent

关于java - Swing - 不使用滚动条滚动 JFrame 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9498045/

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