2013-02-17 237 views
0

我可以使用java中的扫描仪获取一个类的输出并将其用作另一个类的输入吗? 我有打印像这样一个消息,一个JFrame:使用扫描仪从控制台获取消息java扫描仪输入

if(jButton1.getText().compareTo("SEND")>=0){ 
     String msg; 
     int cod=0; 
     if(jRadioButton1.isSelected()){ 
      if(jTextField1.getText().length()>=2) cod = Integer.parseInt(jTextField1.getText().substring(0, 2)); 
      if (codes.get(cod)!=null){ 
       msg=codes.get(cod).concat(jTextField1.getText().substring(2)); 
       System.out.println(msg); 
      } 
      jTextField1.setText(""); 
     } 
     else{ 
      msg=jTextField1.getText(); 
      jTextField1.setText(""); 
      System.out.println(msg); 
     } 
    } 

和类:

Scanner scanIn = new Scanner(System.in); 
for (int i = 0; i < NUM_MSGS; i++) { 
    s = scanIn.nextLine(); 
    message.setText("This is message " +s); 
    System.out.println("Sending message: " + message.getText()); 
    producer.send(message); 
} 
+0

你究竟想要做什么?请解释一下,请... – 2013-02-17 19:59:01

+0

我想使用JFrame的输出创建消息。 – 2013-02-17 20:03:44

+0

我不明白...用更详细的方式告诉我们这个场景,比如“我想从这里接收邮件,发送到那里,建立邮件并打印出来”等。 – 2013-02-17 20:14:54

回答

0

我认为你可以做,在一些复杂的方式,但我可以建议只是调用一种方法。假设你想要来自控制台和其他类的输入。然后,您可以创建从扫描程序类和JFrame中调用的方法doSomethingWithInput(String msg)

+0

现在,扫描仪处于主要方法我不能从那里调用非静态方法。我不想从控制台输入我想从JFrame发送消息到其他类,但是当其他类需要它时,消息可能没有准备好,否则我可能会发送很多消息,而其他类不会获得它们,那是我的问题。 – 2013-02-17 20:14:34

+0

非静态方法是没有问题的。您可以创建一个对象,然后调用main方法中的方法(或者使doSomething也是静态的)。虽然我不太了解你的问题。如果您调用某个方法,则会始终发送消息 - 直接在代码中获取消息时。我想也许你想看的是线程(但我怀疑这是必要的) - 这样发送者和接收者都可以同时运行。 – ddmps 2013-02-17 20:22:45

+0

JFrame和其他类都在同一时间运行,所以我想要在JFrames文本字段中键入somthing时准确创建消息。 – 2013-02-17 20:30:51