私はボタンを押したときに 別のJFrameはそれが木 を描く示され、そのアプリケーションのJavaデスクトップアプリケーション を設計しますが、私は閉じたときのJFrame全体の動作が 近いですが、私は唯一のJfarmeは、私が何をすべきことを閉じるようにしたいですか?ここ はJFrameのコードです:メインプログラムを閉じずにjframeを閉じるには?
public class DrawTree extends JFrame{
public int XDIM, YDIM;
public Graphics display;
@Override
public void paint(Graphics g) {} // override method
// constructor sets window dimensions
public DrawTree(int x, int y)
{
XDIM = x; YDIM = y;
this.setBounds(0,0,XDIM,YDIM);
this.setVisible(false);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
display = this.getGraphics();
// draw static background as a black rectangle
display.setColor(Color.black);
display.fillRect(0,0,x,y);
display.setColor(Color.red);
try{Thread.sleep(500);} catch(Exception e) {} // Synch with system
} // drawingwindow
public static int depth(BinaryNode N) // find max depth of tree
{
if (N==null) return 0;
int l = depth(N.left);
int r = depth(N.right);
if (l>r) return l+1; else return r+1;
}
// internal vars used by drawtree routines:
private int bheight = 50; // branch height
private int yoff = 30; // static y-offset
// l is level, lb,rb are the bounds (position of left and right child)
private void drawnode(BinaryNode N,int l, int lb, int rb)
{
if (N==null) return;
try{Thread.sleep(100);} catch(Exception e) {} // slow down
display.setColor(Color.green);
display.fillOval(((lb+rb)/2)-10,yoff+(l*bheight),20,20);
display.setColor(Color.red);
display.drawString(N.element+"",((lb+rb)/2)-5,yoff+15+(l*bheight));
display.setColor(Color.blue); // draw branches
if (N.left!=null)
{
display.drawLine((lb+rb)/2,yoff+10+(l*bheight),((3*lb+rb)/4),yoff+(l*bheight+bheight));
drawnode(N.left,l+1,lb,(lb+rb)/2);
}
if (N.right!=null)
{
display.drawLine((lb+rb)/2,yoff+10+(l*bheight),((3*rb+lb)/4),yoff+(l*bheight+bheight));
drawnode(N.right,l+1,(lb+rb)/2,rb);
}
} // drawnode
public void drawtree(BinaryNode T)
{
if (T==null) return;
int d = depth(T);
bheight = (YDIM/d);
display.setColor(Color.white);
display.fillRect(0,0,XDIM,YDIM); // clear background
drawnode(T,0,0,XDIM);
}}
と別の質問私は私の木クラスからオブジェクトを新しい
、私はすべての私のボタンのコードで、そのオブジェクトにアクセスしたい ので、私はそれを定義する必要がありますどこかどのようにすべてのコードでアクセスできるオブジェクトを定義する必要がありますか?
最初にJFrameを表示するコードを表示できますか? – twain249
1)* "別のJフレームが表示されています" * [複数のJFramesの使用、良い/悪い練習ですか?](http://stackoverflow.com/a/9554657/418556) 2)シフトキーを見つけて、それはすべての文章の始めに、Iという単語とJFrameのようなクラス名のために。その混乱は試して読むのに苦痛です。 3)そのコードは問題とは関係がないように見えました。 4)* "と別の質問" *それは別の質問の話題です。 2つの質問を1つに詰め込もうとしないでください。 –
thxそれは今働いています – Oli