Java 如何在Jtextfield中调用循环

Java 如何在Jtextfield中调用循环,java,jframe,jtextfield,Java,Jframe,Jtextfield,我重新编辑了密码,先生。这就是我想出来的,问题是在我重新输入一个数字后,Jtextarea只是继续堆叠打印,它不刷新,我不知道为什么。例如,如果我输入1,周期框将购物,如果我输入2,星号框将显示在周期框下方。它只是继续堆叠 Im having trouble on calling my Loop that i created to be placed on the JTextField. Im only a beginner on GUI so i don't understand what i

我重新编辑了密码,先生。这就是我想出来的,问题是在我重新输入一个数字后,Jtextarea只是继续堆叠打印,它不刷新,我不知道为什么。例如,如果我输入1,周期框将购物,如果我输入2,星号框将显示在周期框下方。它只是继续堆叠

Im having trouble on calling my Loop that i created to be placed on the JTextField. Im only a beginner on GUI so i don't understand what i am missing or lacking . Please Help me.
the program must print a box of period if the user enters 1 and box of asterisk if the user
enters 2. and if the user enters 2 or more an error message will show up.
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
公共类框扩展了JFrame{
私人JLabel numL,resultL;
私有JTextField numTF;
私有JTextarearesulttf;
私有JButton printB,exitB;
私有PrintButtonHandler pbHandler;
私有ExitButtonHandler exitHandler;
公用信箱(){
numL=新的JLabel(“输入1或2”,SwingConstants.CENTER);
resultL=新的JLabel(“Result”,SwingConstants.CENTER);
numTF=新的JTextField(20);
//resultTF=新的JTextField(20);
结果TTF=新的JTextArea(5,5);
printB=新的JButton(“Print”);
pbHandler=新的PrintButtonHandler();
addActionListener(pbHandler);
exitB=新的JButton(“退出”);
exitHandler=新的ExitButtonHandler();
addActionListener(exitHandler);
设置标题(“框”);
容器p=getContentPane();
p、 setLayout(新网格布局(5,1));
p、 添加(numL);
p、 添加(numTF);
p、 添加(结果1);
p、 添加(resultTF);
p、 添加(打印B);
p、 添加(exitB);
设置大小(600600);
setVisible(真);
setDefaultCloseOperation(关闭时退出);
}
私有类PrintButtonHandler实现ActionListener{
已执行的公共无效操作(操作事件e){
//Box1 p=新的Box1();
整数,高度=5,宽度=5,整数;
numLL=Integer.parseInt(numTF.getText());
Font f=resultTF.getFont();
resultTF.setFont(新字体(Font.MONOSPACED,f.getStyle(),f.getSize());
如果(numLL==1){
对于(int i=0;i<5;i++){
对于(int j=0;j<5;j++){
结果f.追加(“.”);
}
resultTF.append(“\n”);
}
}else if(numLL==2){
对于(int i=0;i<5;i++){
对于(int j=0;j<5;j++){
resultTF.追加(“*”);
}
resultTF.append(“\n”);
}
}否则如果(numLL>2){
resultTF.append(“不是1或2:”);
}
}
}
私有类ExitButtonHandler实现ActionListener{
已执行的公共无效操作(操作事件e){
系统出口(0);
}
}
公共静态void main(字符串[]args){
框p=新框();
}
}

现在,您正在将方框指向
System.out
。因此,您需要将它们指向您的文本组件

此外,您不能为此使用
JTextField
,因为它不是多行的。相反,您应该在
JScrollPane
中使用类似于
JTextArea
的东西

    import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Box extends JFrame{

    private JLabel numL,resultL;
    private JTextField numTF;
    private JTextArea resultTF;
    private JButton printB,exitB;
    private PrintButtonHandler pbHandler;
    private ExitButtonHandler exitHandler;




    public Box(){

        numL=new JLabel("Enter 1 or 2", SwingConstants.CENTER);
        resultL=new JLabel("Result",SwingConstants.CENTER);
        numTF=new JTextField(20);
        //resultTF=new JTextField(20);
        resultTF = new JTextArea(5,5);

        printB=new JButton("Print");
        pbHandler=new PrintButtonHandler();
        printB.addActionListener(pbHandler);


        exitB=new JButton("Exit");
        exitHandler= new ExitButtonHandler();
        exitB.addActionListener(exitHandler);


        setTitle("BOX");

        Container p=getContentPane();
        p.setLayout(new GridLayout(5,1));

        p.add(numL);
        p.add(numTF);
        p.add(resultL);
        p.add(resultTF);
        p.add(printB);
        p.add(exitB);

        setSize(600,600);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }


        private class PrintButtonHandler implements ActionListener{
            public void actionPerformed(ActionEvent e){
               //Box1 p=new Box1();
                int num,height=5,width=5,numLL;
                  numLL=Integer.parseInt(numTF.getText());

                Font f = resultTF.getFont();
                resultTF.setFont(new Font(Font.MONOSPACED, f.getStyle(), f.getSize()));





            if(numLL==1){
                for(int i = 0; i < 5; i++) {
                 for(int j = 0; j < 5; j++) {
                resultTF.append(".");
                }
                resultTF.append("\n");
                }

            }else if(numLL==2){
                for(int i = 0; i < 5; i++) {
                 for(int j = 0; j < 5; j++) {
                resultTF.append("*");
                }
                resultTF.append("\n");
                }
            }else if(numLL>2){
                resultTF.append("NOT 1 OR 2:");

            }
            }
        }

        private class ExitButtonHandler implements ActionListener{
            public void actionPerformed(ActionEvent e){

                System.exit(0);

            }
        }

        public static void main(String[]args){
            Box p=new Box();
        }
}
另见:


到底是什么问题?打印按钮手柄部分。我无法让程序运行循环。它对我来说很好。是否希望将
系统.out.print
输出到
resultTF
或其他内容?是。。星号框或句号框必须在结果TF中。谢谢你,先生,但我有一个新问题..编辑代码后,JTextarea继续记录结果。它不会刷新。您可以在添加框之前清除文本,如
resultTF.setText(“”)在执行的
操作的开头
。在添加框之前。
resultTF = new JTextArea();
Font f = resultTF.getFont();
resultTF.setFont(new Font(Font.MONOSPACED, f.getStyle(), f.getSize()));

add(new JScrollPane(resultTF));

.
.
.

for(int i = 0; i < height; i++) {
    for(int j = 0; j < width; j++) {
        resultTF.append(".");
    }
    resultTF.append("\n");
}
public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            Box p = new Box();
        }
    });
}