2

キャンバスがあり、JButton のクリックに基づいて四角形を描画したいと考えています。

つまり言い換えれば

private void jb_drawActionPerformed(ActionEvent evt) {                                        
    // draw a rectangle method
}     

基本的に、その方法で魔法の痛み(グラフィックスg)をどのように組み込むのですか?または、長方形をオブジェクトにして、そのオブジェクトから「レンダリング」メソッドを呼び出す必要がありますか? もしそうなら、誰かがtutをリンクできますか?

private void jb_drawActionPerformed(ActionEvent evt) {                                        
    myrectange.render(x,y); // ????
}  
4

1 に答える 1

4

一般的なコメントと推奨事項

  • 1 つの方法: BufferedImage から Graphics オブジェクトを取得して BufferedImage を描画し、JComponent の (JPanel の?) paintComponent メソッドで BufferedImage を描画します。
  • このようにすると、BufferedImage から直接取得した Graphics オブジェクトを使用して描画を行うことになります。
  • この Graphics オブジェクトを使い終わったら、破棄することを忘れないでください。
  • ただし、実際の描画は JPanel のpaintComponent(...)方法で行われます (以下を参照)。
  • もう 1 つの方法: クラス フィールドを変更し、JPanel の paintComponent メソッドがペイント時にそのフィールドを使用するようにします。たとえば、複数の Rectangle をペイントするArrayList<Rectangle>場合は、ActionListener で add を作成しrepaint()paintComponent(...)メソッドを呼び出して List を反復処理し、保持されている四角形を描画します。
  • メソッドpaintComponent(...)が直接呼び出されることはなく、JVM に対してrepaint().
  • パラメータに渡されたものなど、JVM によって提供された Graphics オブジェクトを破棄しないでpaintComponent(Graphics g)ください。

リンク

于 2013-10-13T19:14:00.313 に答える