2011-07-06 8 views
2

私はJFrameにPAppletを貼り付けようとしていましたが、ユーザーがJFrameのサイズを変更したときにサイズを変更しようとしましたが、ドキュメントが存在するときは不明です。 Hereは私がJPanelでのPAppletのサイズ変更

void setup() { 
    frame.setResizable(true); 
} 

void resize(int w, int h) { 
    super.resize(w,h); 
    frame.setSize(w,h); 
} 

を使用するように言われますが、私はフレームがヌルであるらしいことをしようとしたとき、私はとにかく、取得者と呼ばれるのサイズを変更することを確認する方法については明確ではないですしています。

これは誰でも利用できますか?

EDIT:簡易コード。

がここhttp://wiki.processing.org/w/Swing_JSlidersに基づいて、私のコードの一部を次のとおりです。

public class MyPanel extends JPanel 
{ 
    public MyPanel() 
    { 
     //have tried both BoxLayout and BorderLayout 
     setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS)); 

     //if, instead of a PApplet I use a JPanel, this resizes fine 
     // it's only when using a PApplet that it won't resize 
     //add our processing window 
     PApplet pa = new PApplet(); 
     pa.init(); 
     add(pa); 
    } 

    // create external JFrame 
    private static void createGui() 
    { 
     // create new JFrame 
     JFrame jf = new JFrame("test"); 

     // this allows program to exit 
     jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     // You add things to the contentPane in a JFrame 
     jf.getContentPane().add(new MyPane()); 

     // keep window from being resized 
     //jf.setResizable(false); 

     // size frame 
     jf.pack(); 

     // make frame visible 
     jf.setVisible(true); 

    } 

    public static void main(String[] args) 
    { 
     // threadsafe way to create a Swing GUI 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
       @Override 
       public void run() 
       { 
        createGui(); 
       } 
      } 
     ); 
    } 
} 

おかげで、任意のヘルプは大歓迎です。

+1

私の読んだところから、PAppletは、アプレットから派生したAWTベースのコンポーネントです。 Swingアプリケーション/ JPanelに配置してもよろしいですか?また、JPanelでBorderLayoutを使用し、PApplet BorderLayout.CENTER(および別のBorderLayout位置の別のコンポーネント)を追加するとどうなりますか? –

+0

私はそれをJPanelに入れています。なぜなら、処理していないGUIとhttp://wiki.processing.org/w/Swing_JSlidersをペアにしたいからです。 はその方法を提案していました。 BorderLayoutを使用する場合は、PAppletをうまく保持しますが、サイズを変更する方法はまだ分かりません。自動的には行いません。 – Dogmatixed

+0

@Dogmatixed:* "BorderLayoutを使用する場合、PAppletはそのまま保持されます..resize ..、自動的には実行されません" * CENTER制約に追加する必要があります(他のレイアウトはありません)。 'BorderLayout'をコンテナに強制的に最小サイズにします)。もっと早く助けを求めるには、[SSCCE](http://pscode.org/sscce.html)を、「PApplet」の代わりに普通の色のパネルで作ってみてください。 –

答えて

1

答えは実際にはとても簡単です。ドローを使用しない限り、PAppletのサイズが変更されないようです。それは

PApplet pa = new PApplet() 
{ 
public void draw(){}; 
}; 

PApplet pa = new PApplet(); 

を回すか、適切に拡張PAppletに置き換えることと同じくらい簡単です。

個人的な概念実証を十分に説明していないだけです。

関連する問題