答えて
通常、Swingを使用している場合は、Swingコンポーネントのみを使用してください。 SwingコンポーネントとAWTコンポーネントを同じGUIに混在させると、奇妙な結果につながります。だから私は、JPanel、または生のJComponentを使用します。
Canvas
はAWTオブジェクトです。 JPanel
は軽量のJava Swingオブジェクトです。 Java Swing GUIをお持ちの場合は、JPanel
を使用することを強くお勧めします。
ここJPanelの良いリンクです:
最も単純なケースでは、あなたが
JPanel
まったく同じ方法を使用します でしょうPanel
として。それを割り当て、コンポーネントをドロップして、にJPanel
を追加します。しかし、JPanel
も...
それとも、アイコンのような静的な画像を表示したい場合は、JLabel
を使用することができます(ないJCanvas
はありません) Canvas
の代替として機能します。
BufferedImage image=
new BufferedImage(100, 50, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = image.createGraphics();
// draw
g2.draw(new Ellipse2D.Double(x, y, rectwidth,rectheight));
g2.fill (new Ellipse2D.Double(0, 0, 100, 50));
JLabel label = new JLabel(new ImageIcon(image));
明示的に作成する 'Graphics'インスタンスの' dispose() 'を忘れないでください。 –
このようなものは好みのものに依存しますが、私はJFrameを使用して直接ウィンドウを作成し、それを描画できます。キャンバスには利点があります。それは、インポートを少なくして書いてみましょう。また、キャンバスグラフィックスのものからウィンドウのものを分離しますが、ウィンドウにアクセスできないという欠点があります。それはあなたが好きで必要なものによって決まります。
- 1. Javafx canvas vs pane
- 2. SVG rect vs div vs canvas
- 3. HTML5 Canvas vs SVG/VML?
- 4. WebGL VS Canvas 2Dハードウェアアクセラレータ
- 5. Canvas vs Fauxビデオプレーヤーの画像
- 6. JButtonをCanvas()に追加するには?または、Panel()にJButtonを追加し、Panel()の背景を透明にする方法は?
- 7. Parallels Plesk Panelアップデート
- 8. ブートストラップ ".panel-heading" opacity?
- 9. C#Generate Panel Form
- 10. pandas Panel max
- 11. Magento Admin Panel Brock
- 12. Update Panel Missing Data
- 13. Sencha-Touch Panelリスナー
- 14. Grafana Worldmap Panelイベントハンドラ
- 15. Java Applet Panel Refresh
- 16. silverlight slide in panel
- 17. Voyager - laravel admin panel
- 18. Canvas Canvas Larger Than Screen
- 19. clearRect is not canvas canvas
- 20. WPF Dock Panel wierd magin
- 21. jQuery Slide Panel on Mouseover
- 22. Extjs Tab Panel with CodeMirror
- 23. OpenGL ES vs. Canvas for Androidでは「ドラッグ&ドロップ」が速くなりますか?
- 24. Laravel Panel画像をアップロード
- 25. Java Applet to Multi Panel Application
- 26. PanelとUserControlの違いc#
- 27. ASP.NET:HtmlGenericControl( "div")またはPanel
- 28. .panelデフォルト境界線の色
- 29. DataFrameからPanelを作成
- 30. wxPython Panel in existing window:スロー&スモール
スイングコンポーネントを使用します。 – user1329572
AWTではなくSwingを使用する理由は、[この回答](http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978)を参照してください。 –