Java 要在swing面板上打印的命令提示符输出。

Java 要在swing面板上打印的命令提示符输出。,java,swing,networking,Java,Swing,Networking,实际上,我已经创建了一个swing面板,它接受用户的输入,比如sourceno、destinationno、ttl,并基于这些数据,我将应用我的纯随机传播算法(PRP)来找出网络中经过的路由节点。按下swing面板中的submit按钮后,下面的代码(PRP.java)将在命令提示下打印遍历的路由节点 我需要修改代码,在按下submit按钮时,生成的遍历路径应该打印在submit按钮下方同一面板的文本框中,而不是在命令提示符上 请建议修改代码 import java.awt.*; import j

实际上,我已经创建了一个swing面板,它接受用户的输入,比如sourceno、destinationno、ttl,并基于这些数据,我将应用我的纯随机传播算法(PRP)来找出网络中经过的路由节点。按下swing面板中的submit按钮后,下面的代码(PRP.java)将在命令提示下打印遍历的路由节点

我需要修改代码,在按下submit按钮时,生成的遍历路径应该打印在submit按钮下方同一面板的文本框中,而不是在命令提示符上

请建议修改代码

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

public class PRP extends JFrame
{


JTextField srcno;
JTextField destno;
JTextField ttl;
JTextField datapayload;
JLabel srcnode;
JLabel destnode;
JLabel TTL;
JLabel Datapayload;
JButton submit;
JTextArea textFieldName;


  public PRP()
  {

    PRPLayout customLayout = new PRPLayout();

    getContentPane().setFont(new Font("Helvetica", Font.PLAIN, 12));
    getContentPane().setLayout(customLayout);

    srcnode = new JLabel("Enter source node:");
    getContentPane().add(srcnode);

    srcno = new JTextField("number");
    getContentPane().add(srcno);

    destnode = new JLabel("Enter destination node:");
    getContentPane().add(destnode);

    destno = new JTextField("number");
    getContentPane().add(destno);

    TTL = new JLabel("Enter TTL:");
    getContentPane().add(TTL);

    ttl = new JTextField("number");
    getContentPane().add(ttl);

     Datapayload = new JLabel("Enter DataPayload:");
    getContentPane().add(Datapayload);

    datapayload = new JTextField("abcd...");
    getContentPane().add(datapayload);

    submit = new JButton("submit");
    getContentPane().add(submit);

    textFieldName = new JTextArea("PRP ROUTING:",80,10);
    textFieldName.setEditable( false );
    JScrollPane scroll = new JScrollPane(textFieldName) ;
    scroll.setBounds( 10, 60, 225, 150 );
    getContentPane().add( scroll );

    submit.addActionListener(new ActionListener()
                                         {
                                            public void actionPerformed(ActionEvent e) 
                                            {

                                              String[]  prpdata = new String[3];
                                              prpdata[0]=srcno.getText();
                                              prpdata[1]=destno.getText();
                                              prpdata[2]=ttl.getText();
                                              try{ 
                                              PRP pr = new PRP();
                                              pr.PRPRoute(prpdata); }
                                              catch(Exception ez){ textFieldName.append("exception in caller method"); }


                                             }
                                           });

    setSize(getPreferredSize());

    }

    public void PRPRoute(String argus[]) throws ClassNotFoundException,SQLException
    {

     String url="jdbc:oracle:thin:@localhost:1521:xe";
     String u="proj";
     String p="bade";
     String src=argus[0];
     String dest=argus[1];
     int ttl=Integer.parseInt(argus[2]);
     Class.forName("oracle.jdbc.driver.OracleDriver");
     Connection con=DriverManager.getConnection(url,u,p);
     if(con==null)
     {
       textFieldName.append("not connected to oracle");
       return;
      }

     textFieldName.append("connected to oracle");

     String query= "select distinct RFrom,RTo from router where RFrom='"+src+"'"+"or "+ "RTo='"+src+"'";

     Statement st=con.createStatement();
     ResultSet rs=st.executeQuery(query);

     ResultSetMetaData rsmd = rs.getMetaData();

     int j=-1;

     String[]  randata = new String[30];
     textFieldName.append( "\n\t"+"Neighbors of " + src+"::");  

     while( rs.next() )
     {  
       j++;
       for (int i = 1; i <= rsmd.getColumnCount(); i++)
      {

        String ss=rs.getString( i );
        if(!(ss.equals(src)))
        {
           textFieldName.append( "\t" + ss );
           randata[j]=ss ;  
        }
      }

      textFieldName.append( "\n\n" );   
     }
     int k=0;
     textFieldName.append("\n"+"Checking for 1-hop neighbours. . . .");

     for(int i=0;i<=j;i++)
     {
        if(randata[i].equals(dest))
        textFieldName.append("1-hop neighbour found");
        textFieldName.append( "\t" + "Routing followed:"+src+"--->" +randata[i]);
        textFieldName.append("\n\t successfully routed!");
        k=i;
        break;
      }
   }

   if(!(randata[k].equals(dest)))
   {
    textFieldName.append("Choosen dispersive PRP strategy!!!");
    textFieldName.append( "\t" + "Routing followed:"+src+"--->" );
    Random r=new Random();
    if(ttl<=0) { 
              textFieldName.append("MINHOP ROUTING STARTED");

           }
     else {
          ttl--;
          String next=randata[r.nextInt(j)];
          textFieldName.append(next);
          if(next.equals(dest)) { textFieldName.append("\n\t successfully routed!"); }
          else{
               String[] indata = new String[3];
               indata[0]=next;
               indata[1]=dest;
               indata[2]=Integer.toString(ttl);
               try{ PRPRouteout pr=new PRPRouteout(indata); }
               catch(Exception ezl){ textFieldName.append("exception in PRPRouteut caller method"); }


             }
         }
     }


    }




 public static void main(String args[])
 {
    PRP window = new PRP();

    window.setTitle("PRP");
    window.pack();
    window.show();
 }
}

class PRPLayout implements LayoutManager
{
  public PRPLayout() {  }
  public void addLayoutComponent(String name, Component comp) {   }
  public void removeLayoutComponent(Component comp) {  }
  public Dimension preferredLayoutSize(Container parent)
 {
    Dimension dim = new Dimension(0, 0);
    Insets insets = parent.getInsets();
    dim.width = 320 + insets.left + insets.right;
    dim.height = 240 + insets.top + insets.bottom;
     return dim;
 }

 public Dimension minimumLayoutSize(Container parent)
 {
    Dimension dim = new Dimension(0, 0);
    return dim;
 }
 public void layoutContainer(Container parent) 
 {
    Insets insets = parent.getInsets();
    Component c;
    c = parent.getComponent(0);
    if (c.isVisible()) {c.setBounds(insets.left+90,insets.top+8,172,26);}
    c = parent.getComponent(1);
    if (c.isVisible()) {c.setBounds(insets.left+230,insets.top+8,172,26);}
    c = parent.getComponent(2);
    if (c.isVisible()) {c.setBounds(insets.left+90,insets.top+40,172,26);}
    c = parent.getComponent(3);
    if (c.isVisible()) {c.setBounds(insets.left+230,insets.top+40,172,26);}
    c = parent.getComponent(4);
    if (c.isVisible()) {c.setBounds(insets.left+90,insets.top+72,172,26);}
    c = parent.getComponent(5);
    if (c.isVisible()) {c.setBounds(insets.left+230,insets.top+72,172,26);}
    c = parent.getComponent(6);
    if (c.isVisible()) {c.setBounds(insets.left+90,insets.top+112,172,26);}
    c = parent.getComponent(7);
    if (c.isVisible()) {c.setBounds(insets.left+230,insets.top+112,172,26);}
    c = parent.getComponent(8);
    if (c.isVisible()) {c.setBounds(insets.left+230,insets.top+152,142,26);}
    c = parent.getComponent(9);
    if (c.isVisible()) {c.setBounds(insets.left+90,insets.top+200,472,268);}
 }
}
import java.awt.*;
导入javax.swing.*;
导入java.awt.event.*;
导入java.sql.*;
导入java.util.*;
公共类PRP扩展JFrame
{
JTextField srcno;
JTextField destno;
JTextField-ttl;
JTextField数据有效载荷;
JLabel节点;
JLabel节点;
JLabel-TTL;
JLabel数据有效载荷;
JButton提交;
JTextArea textFieldName;
公共资源计划()
{
PRPLayout customLayout=新的PRPLayout();
getContentPane().setFont(新字体(“Helvetica”,Font.PLAIN,12));
getContentPane().setLayout(customLayout);
srcnode=newjlabel(“输入源节点:”);
getContentPane().add(srcnode);
srcno=新的JTextField(“编号”);
getContentPane().add(srcno);
destnode=newjlabel(“输入目标节点:”);
getContentPane().add(destnode);
destno=新的JTextField(“编号”);
getContentPane().add(destno);
TTL=新的JLabel(“输入TTL:”);
getContentPane().add(TTL);
ttl=新的JTextField(“编号”);
getContentPane().add(ttl);
Datapayload=newjlabel(“输入Datapayload:”);
getContentPane().add(数据负载);
datapayload=新的JTextField(“abcd…”);
getContentPane().add(数据负载);
提交=新按钮(“提交”);
getContentPane()。添加(提交);
textFieldName=newjtextarea(“PRP路由:”,80,10);
textFieldName.setEditable(false);
JScrollPane scroll=新的JScrollPane(textFieldName);
卷轴.立根(10,60,225,150);
getContentPane().add(滚动);
submit.addActionListener(新建ActionListener())
{
已执行的公共无效操作(操作事件e)
{
字符串[]prpdata=新字符串[3];
prpdata[0]=srcno.getText();
prpdata[1]=destno.getText();
prpdata[2]=ttl.getText();
试试{
PRP pr=新的PRP();
pr.PRPRoute(prpdata);}
catch(异常ez){textFieldName.append(“调用方方法中的异常”);}
}
});
设置大小(getPreferredSize());
}
public void PRPRoute(字符串argus[])抛出ClassNotFoundException、SQLException
{
String url=“jdbc:oracle:thin:@localhost:1521:xe”;
字符串u=“proj”;
字符串p=“bade”;
字符串src=argus[0];
字符串dest=argus[1];
intttl=Integer.parseInt(argus[2]);
类forName(“oracle.jdbc.driver.OracleDriver”);
Connection con=DriverManager.getConnection(url、u、p);
如果(con==null)
{
textFieldName.append(“未连接到oracle”);
返回;
}
textFieldName.append(“连接到oracle”);
String query=“从路由器中选择不同的RFrom、RTo,其中RFrom='”+src+“+”或“+”RTo='”+src+“'”;
语句st=con.createStatement();
结果集rs=st.executeQuery(查询);
ResultSetMetaData rsmd=rs.getMetaData();
int j=-1;
字符串[]随机数据=新字符串[30];
textFieldName.append(“+src+”:”)的(“\n\t”+”邻居);
while(rs.next())
{  
j++;

对于(int i=1;i如果我正确理解了您的问题,请尝试以下方法:


使用
textFieldName.setText();
而不是
System.out.println();

我不知道你的代码。但我知道我们可以使用Ping或跟踪路由的方法…并将结果放入.txt文件。像这样编写你的命令 ping 192.168.1.1-t>filename.txt

介意你也用这个吗 要在ping之间延迟并记录每次ping的时间,您可以编写一些脚本

@回音 :LOOPSTART 时间/吨 ping xxx.xxx.xxx.xxx-n 4>>filename.txt ping yyy.yyy.yyy-n 4>>filename.txt 睡眠-M3000 转到循环开始


它将在根目录中创建一个文件。它将打印所有的结果直到命令退出。

这是一个很好的问题,但是示例太长了。由于它的疯狂格式化,我不能读取您的代码。请考虑修复它。我已经通过替换Soal.Out.PrtLtNo()来更改我的代码;用TeXFieldNeal.AppEnter()更改了代码。;…没有错误,但是textearea只是空白,没有任何结果@bhushan@user2224922
JTextField jtf=new JTextField();jtf.setText(“Bhushan”);
这就是需要做的,首先创建一个textfield对象,然后使用
setText()
方法在textfield中设置文本