1

「1-10」ボタンが押されたときにwhileループから出力全体を取得したいので、表示するすべての数字に対して「OK」ボタンをクリックする必要はありません。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Testgui1 extends JFrame implements ActionListener 
{
    int i = 1;
    JLabel myLabel = new JLabel();
    JPanel mypanel = new JPanel();
    JButton mybutton = new JButton("1-10");
    Testgui1()
    {
        super("Meny");
        setSize(200,200);//Storlek på frame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container con = this.getContentPane();
        con.add(mypanel); 
        mybutton.addActionListener(this);
       mypanel.add(myLabel); mypanel.add(mybutton);
        setVisible(true);
    }
    public void actionPerformed(ActionEvent event)
    {  
    // Object source = event.getSource();
    //if (source == mybutton)
    {
            while (i < 11){
                        System.out.print(+i);
       {
            JOptionPane.showMessageDialog(null,i,"1-10",
                   JOptionPane.PLAIN_MESSAGE);
                    setVisible(true);
                     ++i;
       }
    }
        }
            }
    public static void main(String[] args) {new Testgui1();}
}
4

1 に答える 1

2

あなたがしたいことは、whileループ内でString(またはStringBuilderが望ましい)を構築し、ループが完了した後に一度出力することだと思います。次のようなものです:

StringBuilder s = new StringBuilder();
while(i < 11) {
    s.append(" ").append(i);
    i++;
}
System.out.println(s);
JOptionPane.showMessageDialog(null, s, "1-10", 
             JOptionPane.PLAIN_MESSAGE);

それは少なくともあなたを近づけるはずです。

メッセージ ダイアログをモーダルにしたい場合は、最初の引数として (null ではなく) "this" を showMessageDialog に渡すことに注意してください。

于 2013-01-17T15:28:22.717 に答える