当我按下“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();}
}
答案 0 :(得分: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);
至少应该让你离得更近。
请注意,如果您希望消息对话框是模态的,请将“this”作为第一个参数(而不是null)传递给showMessageDialog。