2

ウィンドウを表示するアプリケーションがあります。ユーザーが「閉じる」ボタンを押したときにウィンドウを閉じる代わりに、このウィンドウを非表示にしたいのですが、どうすればよいですか?

これが私のコードです(機能しません。クリックするとアプリが閉じます):

  object UxMonitor {

  def main(args: Array[String]) {
    val frame = new MainScreen()
    frame.peer.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE)
    initTrayIcon(frame.peer)
  }

....

class MainScreen extends MainFrame {
      private val HEADERS = Array[Object]("Security", "Last Price", "Amount", "Cost")
      private val quotes = new Quotes()
      private val tableModel = new DefaultTableModel()

      title = "UX Monitor"

      tableModel.setColumnIdentifiers(HEADERS)

      private val table = new Table {
        model = tableModel
      }

      contents = new ScrollPane {
        contents = table
      }

      quotes.setListener(onQuotesUpdated)
      quotes.startUpdating

      peer.addWindowListener(new WindowAdapter{
        def windowClosing(e : WindowEvent){
            self.setVisible(false)
        }
      })

      pack
4

1 に答える 1

3

最も簡単な方法は次のとおりです。

final JFrame frame=...;

....

frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

WindowAdapterまたは、オーバーライドを追加して同じ結果を得ることができ、そこでon ) を次のようwindowClosed(...)に呼び出します。setVisible(false)JFrame

...

 frame.addWindowListener(new WindowAdapter() {
    @Override
  public void windowClosing(WindowEvent evt) {
    frame.setVisible(false);
  }
});
于 2012-11-30T20:04:18.087 に答える