-2

コード 1:

public static JFrame frame = null;    
public myClass(JFrame frame1)
{
    initComponents();
    frame = frame1;
    String result = JOptionPane.showInternalInputDialog(
        frame.getContentPane(), "Sample");
}

コード 2:

public static JFrame frame = null;
public myClass(JFrame frame1)
{
    initComponents();
    frame = frame1;
    sampleMethod();
}

public static void sampleMethod() 
{
    String result = JOptionPane.showInternalInputDialog(
        frame.getContentPane(), "Sample");
}

コード 1 の結果が欲しかったのですが、コードはコード 2 のように見える必要があります。なぜ結果が異なるのですか?

4

1 に答える 1

6

両方のコードが関連している場合、結果が異なることは不可能です。つまり、これは、提供したコードが十分に完全ではない、「異なる結果」の意味を明確にしていないことを意味します。

そして、私の推測ではmyClass、同時に複数のインスタンスを作成していると思いますか?私はこれを試してみることをお勧めします:(それなしでstatic

public JFrame frame = null; // static removed
public myClass(JFrame frame1)
{
    initComponents();
    frame = frame1;
    sampleMethod();
}

public void sampleMethod() // static removed
{
    String result = JOptionPane.showInternalInputDialog(
        frame.getContentPane(), "Sample");
}
于 2013-01-01T02:46:10.123 に答える