我有以下问题。有没有办法在不使用滚动条的情况下滚动Jframe内容,只是以编程方式在代码中执行。我有Japplet,我找不到滚动显示内容的方式。整个滚动操作不应该在用户操作上执行,而应该在我的主题要执行时执行。等待帮助,谢谢。摇摆 - 滚动JFrame的内容,而无需使用滚动条
我找不到任何方式做到这一点。我试图将我的组件(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本身?
有两种/三种方式,但没有人知道你是怎么尝试,为更好地帮助有[SSCCE]越早编辑您的问题( http://sscce.org/) – mKorbel 2012-02-29 11:23:06
你是否控制'JApplet'的代码?虽然可以将小程序放在一个框架中,但这不是一个好主意。 – 2012-02-29 11:44:56
我改变了一下实现。相反,Japplet将添加到Jframe中的我的类扩展到Jcomponent。在这个类中,我添加了Jpanel元素(这是Jung图书馆需要的,我用它来可视化图表)。但我仍然无法找到滚动视图的方法。 – tomi891 2012-02-29 11:58:33