Java for循环语句始终为true

Java for循环语句始终为true,java,for-loop,swingworker,Java,For Loop,Swingworker,长话短说,我正在尝试用非常简单的gui创建端口嗅探器。 没有工作程序,端口嗅探器工作正常,但我想在每次发现打开的端口时更新area1。添加辅助程序后,“for”循环不会循环。所以如果有人能告诉我问题出在哪里就好了 import java.net.*; import java.awt.*; import java.awt.event.*; // definējam galveno klasi public class PortScanner extends JFrame implements A

长话短说,我正在尝试用非常简单的gui创建端口嗅探器。 没有工作程序,端口嗅探器工作正常,但我想在每次发现打开的端口时更新area1。添加辅助程序后,“for”循环不会循环。所以如果有人能告诉我问题出在哪里就好了

import java.net.*;
import java.awt.*;
import java.awt.event.*;

// definējam galveno klasi
public class PortScanner extends JFrame implements ActionListener {
JButton poga1 = new JButton("palaist skaneri");
JTextField jt = new JTextField ("ievadam adresi",30);
SwingWorker worker;
JTextArea area1 = new JTextArea(5, 40);
//taisam konsturkoturu
public PortScanner(){
    //virsraksts
    super("Portu skaneris007");
    //definejam konteineru
    Container content = getContentPane();
    content.setBackground(Color.BLUE);
    //liekam konteineri izkartojumu
    content.setLayout(new FlowLayout());
    //ieliekam logā pogu
    content.add(poga1);
    content.add(jt);
    content.add(area1);
         //ramim izmeri
    setSize(600,500);
    //pieliekam klausitaju
    poga1.addActionListener(this);
    jt.addActionListener(this);

    //aiversanas operacija
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
  }
public void actionPerformed(ActionEvent a){
    if(a.getSource()== poga1){
        //seit bus darbiba ko veiks poga
        this.metode1();

    }

 }

public void metode1() {
    area1.setText("");
    if (worker != null) {
        worker.cancel(false);
    }
    worker = new SwingWorker() {
        @Override
        protected Integer doInBackground() {

            for (int port = 1; port <= 65535; port++) {  //65535
                try {

                    String input = jt.getText();
                    Socket socket = new Socket();
                    socket.connect(new InetSocketAddress(input, port), 1000);
                    socket.close();
                    area1.append("ports " + port + "atvērts \n");
                    System.out.println("Port " + port + " is open");
                } catch (Exception ex) {}
                return 0;
            }
            worker.execute();
            return null;
        }

    };
}

public static void main(String []args) {
    new PortScanner();
}
}
import java.net.*;
导入java.awt.*;
导入java.awt.event.*;
//定义贾姆·加尔维诺·克拉西
公共类PortScanner扩展JFrame实现ActionListener{
JButton poga1=新JButton(“palaist skaneri”);
JTextField jt=新的JTextField(“ievadam adresi”,30);
摇摆工人;
JTextArea Area 1=新的JTextArea(5,40);
//泰山康斯特库图鲁酒店
公共端口扫描程序(){
//病毒库
超级(“Portu skaneris007”);
//定义内贾姆·康泰内鲁
容器内容=getContentPane();
内容.背景(颜色.蓝色);
//利卡姆·康泰内里·伊兹卡尔托朱穆
content.setLayout(新的FlowLayout());
//伊列卡姆日志āpogu
内容。添加(poga1);
内容。添加(jt);
内容。添加(区域1);
//伊兹梅里河
设置大小(600500);
//皮耶利坎克劳西塔朱
poga1.addActionListener(本);
jt.addActionListener(本);
//艾尔萨纳斯歌剧院
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(真);
}
已执行的公共无效操作(操作事件a){
if(a.getSource()==poga1){
//darbiba ko veiks poga赛特巴士
这个;
}
}
公共空间metode1(){
区域1.setText(“”);
if(worker!=null){
worker.cancel(假);
}
工人=新的SwingWorker(){
@凌驾
受保护整数doInBackground(){
对于(int port=1;port行

return 0;

将始终从方法返回,因此终止循环,无论
端口的实际值是多少。代码只执行一次。

您将
返回0
放在
for
循环的末尾,因此当它到达该点时,当然会从
doInBackground
函数返回,这意味着循环的其余部分将不会运行。