次の問題があります。スクロールバーを使わずにJframeコンテンツをスクロールする方法はありますか?コードでプログラム的に行うだけです。私はJappletを内部に持っており、スクロールを表示せずにコンテンツをスクロールする方法を見つけることはできません。全スクロールアクションは、ユーザーアクションではなく、スレッドが実行したいときに実行する必要があります。助けを待って、ありがとう。スイング - スクロールバーを使用せずにJFrameコンテンツをスクロール
私はそれを行う方法が見つかりません。私は自分のコンポーネント(アプレット)を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自体が含まれていますか? JComponent内の
が2/3つの方法があるが、誰もあなたが早く([SSCCE]であなたの質問を編集して、より良い助けのため、試さなかったことを知っているんhttp://sscce.org/) – mKorbel
あなたは 'JApplet'のコードを制御しますか?フレームにアプレットを置くことは可能ですが、それは良い考えではありません。 –
実装を少し変更します。代わりにJletletのmy classがJframeに追加され、Jcomponentが拡張されます。このクラスでは、Jpanel要素を追加します(グラフを視覚化するために使用するJungライブラリで必要です)。しかし、私はまだビューをスクロールする方法を見つけることができません。 – tomi891