プロが教える店舗&オフィスのセキュリティ対策術

eclipseのVE機能を使ってjFrameの画面生成を勉強しているのですが、
複数の画面を生成することができません。。

以下のソースで、ボタンが押された時に新しく画面を生成するように
しているのですが、なぜか生成できません。エラーもありません。
何が足りなかったのか、悪かったのかを指摘していただけますでしょうか?

import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class jFrameTest extends JFrame implements ActionListener{

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton jButton = null;

/**
* This is the default constructor
*/
public jFrameTest() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
jContentPane = new JPanel();
jContentPane.setLayout(new GridBagLayout());
jContentPane.add(getJButton(), gridBagConstraints);
}
return jContentPane;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("jButton");
jButton.addActionListener(this);
}
return jButton;
}

//ボタン入力リスナー
public void actionPerformed(ActionEvent event) {
String cmd = event.getActionCommand();

if(cmd == "jButton"){
jFrameTest jtest = new jFrameTest();
System.out.println("new");
}
}

}

A 回答 (1件)

actionPerformedメソッドを編集。


mainメソッドを作成。
してみました。

こんな感じでいかがでしょう。
----------------------------------------------------------------------
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class jFrameTest extends JFrame implements ActionListener{

  private static final long serialVersionUID = 1L;
  private JPanel jContentPane = null;
  private JButton jButton = null;

  /**
   * This is the default constructor
   */
  public jFrameTest() {
    super();
    initialize();
  }

  /**
   * This method initializes this
   *
   * @return void
   */
  private void initialize() {
    this.setSize(300, 200);
    this.setContentPane(getJContentPane());
    this.setTitle("JFrame");
  }

  /**
   * This method initializes jContentPane
   *
   * @return javax.swing.JPanel
   */
  private JPanel getJContentPane() {
    if (jContentPane == null) {
      GridBagConstraints gridBagConstraints = new GridBagConstraints();
      gridBagConstraints.gridx = 0;
      gridBagConstraints.gridy = 0;
      jContentPane = new JPanel();
      jContentPane.setLayout(new GridBagLayout());
      jContentPane.add(getJButton(), gridBagConstraints);
    }
    return jContentPane;
  }

  /**
   * This method initializes jButton
   *
   * @return javax.swing.JButton
   */
  private JButton getJButton() {
    if (jButton == null) {
      jButton = new JButton();
      jButton.setText("jButton");
      jButton.addActionListener(this);
    }
    return jButton;
  }

  //ボタン入力リスナー
  public void actionPerformed(ActionEvent event) {
    String cmd = event.getActionCommand();
    
//    if(cmd == "jButton"){
    if("jButton".equals(cmd)){
      jFrameTest jtest = new jFrameTest();
      jtest.setVisible(true);
      System.out.println("new");
    }
  }

  public static void main(String[] args) {
    jFrameTest test = null;
    test = new jFrameTest();
    test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    test.setVisible(true);
  }
}
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!
解決しました!
setVisible(true); ← これがないとダメなんですね^^
本当に助かりました。ありがとうございました!

お礼日時:2009/06/02 09:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!