討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 虛擬社群公民行為研究
[ 回上頁 ] [ 討論區發言規則 ]
呼叫的JFrame有自動關閉!
更改我的閱讀文章字型大小
作者 : totoangle(小山山)
[ 貼文 63 | 人氣 2418 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/9 下午 01:15:37
如果有一個JFrame1
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Frame1 extends JFrame {
  JPanel contentPane;
  JButton jButton1 = new JButton();

  /**Construct the frame*/
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  /**Component initialization*/
  private void jbInit() throws Exception  {
    jButton1.setText("jButton1");
    jButton1.setBounds(new Rectangle(82, 80, 135, 31));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(null);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Frame Title");
    contentPane.add(jButton1, null);
  }
  /**Overridden so we can exit when window is closed*/
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  void jButton1_actionPerformed(ActionEvent e) {
    Frame2 frm=new Frame2();
    frm.setVisible(true);
    frm.setSize(200,200);
  }
}

按下按鈕叫出另一個JFrame2
import java.awt.*;
import javax.swing.JFrame;

public class Frame2 extends JFrame {

  public Frame2() {
    this.dispose();
    this.setVisible(false);
  }
}

但我在JFrame2有寫一段自動關閉的語法但就是無法把JFrame2關閉掉耶
怎辦?
作者 : charleschen(Charles)
[ 貼文 6 | 人氣 163 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/9 下午 06:05:32
>但我在JFrame2有寫一段自動關閉的語法但就是無法把JFrame2關閉掉耶
>怎辦?

您是指JFrame2 按下 X 關不掉嗎? 我是初學, 不知道是否正確:
在JFrame2 中試試看
........................
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
.....................
    private void exitForm(java.awt.event.WindowEvent evt) {
        this.hide();
    }
作者 : totoangle(小山山)
[ 貼文 63 | 人氣 2418 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/9 下午 06:48:50
不是按上面Title列的x扭.而是視窗一出來或等幾秒中就自動關閉它不用按什麼關閉按鈕!
還有要怎消除Title列,變成一個Logo程式的畫面
作者 : chou_judas(judas) 貼文超過200則
[ 貼文 243 | 人氣 5085 | 評價 130 | 評價/貼文 0.53 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/9 下午 08:03:27
關閉視窗可以使用 dispose() 這個函式.
若不使用 Title 列, 那要採用 JWindow, 而不是 JFrame.
作者 : totoangle(小山山)
[ 貼文 63 | 人氣 2418 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/9 下午 11:34:39
我無法使用JWindow耶
因為出現Superclsss does not descend from java.awt.Frame的錯誤訊息耶

還有丫.我也有用dispose(); 但還是沒有關閉掉
作者 : totoangle(小山山)
[ 貼文 63 | 人氣 2418 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 上午 12:20:33
還有使用JWindow時執行後好像JTextField無法輸入資料耶
JButton是可以按
作者 : chou_judas(judas) 貼文超過200則
[ 貼文 243 | 人氣 5085 | 評價 130 | 評價/貼文 0.53 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 上午 07:45:50
你的運算程序好像怪怪的, 給你個參考:

.../*Frame1*/
  void jButton1_actionPerformed(ActionEvent e) {
    Frame2 frm=new Frame2();
    frm.dispose();  //-->關閉 Frame2
    ^^^^^^^^^
  }
...

public class Frame2 extends JFrame {
  public Frame2() {
    setSize(200,200);
    setVisible(true);  //-->顯示 Frame2
    ^^^^^^^^^^
  }
}

作者 : totoangle(小山山)
[ 貼文 63 | 人氣 2418 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 上午 10:14:57
但這不是我要的結果耶!@@

例如:有一個JFrame1 及JFrame2
執行程式會先出現JFrame1,然後按JFrame1中的一個JButton時,
會再出現JFrame2
此時JFrame2中有一個jProgressBar物件,當jProgressBar在JFrame2由0%到100%後,就結束JFrame2但不是System.exit(0)喔
作者 : chou_judas(judas) 貼文超過200則
[ 貼文 243 | 人氣 5085 | 評價 130 | 評價/貼文 0.53 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 下午 06:35:15
.../*Frame1*/
  void jButton1_actionPerformed(ActionEvent e) {
    new Frame2();
  }
...

public class Frame2 extends JFrame {
  public Frame2() {
    setSize(200,200);
    ...
    // JProgressBar 設定方式
    ...
    setVisible(true);  //-->顯示 Frame2
    ...
    // JProgressBar 運算程序
     ...
    dispose();  //-->關閉視窗
  }
}
作者 : totoangle(小山山)
[ 貼文 63 | 人氣 2418 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 下午 08:00:33
謝謝囉可以自動關閉了~
作者 : duncan_macleod(洋將) Java卓越專家貼文超過1000則
[ 貼文 1121 | 人氣 921 | 評價 2490 | 評價/貼文 2.22 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 下午 08:21:19

>.../*Frame1*/
>  void jButton1_actionPerformed(ActionEvent e) {
>    new Frame2();
>  }
>...
>
>public class Frame2 extends JFrame {
>  public Frame2() {
>    setSize(200,200);
>    ...
>    // JProgressBar 設定方式
>    ...
>    setVisible(true);  //-->顯示 Frame2
>    ...
>    // JProgressBar 運算程序
>     ...
>    dispose();  //-->關閉視窗
>  }
>}
>

怎麼會這樣寫?!
應該把處理的動作放在 Thread 裡, 並在處理過程中改變 progress bar 狀態, 最後才關掉 window/frame, 怎麼會寫在 constructor 裡呢?? constructor 不是給你作這些費時及 UI 方面的事.
作者 : chou_judas(judas) 貼文超過200則
[ 貼文 243 | 人氣 5085 | 評價 130 | 評價/貼文 0.53 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/11/10 下午 08:56:38
多謝洋將大大的指導.
小弟剛學物件設計半年多, 有很多基本觀念及設計做法不是很紮實, 所以歡迎各位大大, 提供寶貴的設計經驗給我們這些初學者做參考.
 板主 : 風月
 > Java入門一般區 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Java入門一般區 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Java入門一般區
1 洋將 2410 
2 Aron 2130 
3 Aries 1510 
4 DEMO999 1310 
5 Ben 990 
6 ramb 620 
7 ozzy 540 
8 tand 460 
9 Huah 410 
10 vindy 400 
Java入門一般區
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2014 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125