java - 在 JFrame 中输出整个循环

标签 java while-loop jframe joptionpane

我想在按下“1-10”按钮时从 while 循环中获取整个输出,而不必单击“确定”按钮来显示每个数字。

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();}
}

最佳答案

我认为你想要做的是在 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);

这至少会让你更接近。

请注意,如果您希望消息对话框是模态的,请将“this”作为第一个参数(而不是 null)传递给 showMessageDialog。

关于java - 在 JFrame 中输出整个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14382304/

相关文章:

java - AsyncPlayerChatEvent,尝试查看字符串数组中的字符串是否包含在第二个字符串数组中的另一个字符串中

java - JAVA和JSP有区别吗

java - 在单个 JFrame 中使用多个 JPanel

java - clone() 方法如何访问对象的字段? ( java )

java - 在构造函数中启动线程

php - 循环包含语句

java - 如何让我的代码运行直到我输入数字

Python:在 "If"循环中嵌套 "while"语句?

java - JFrame 内存泄漏

java - JPanel 中的多个组件未显示