2013-07-19 56 views
-1

我有一个扫描仪,可以读取我试图在屏幕上打印的txt文件。我试图通过使用图形g在屏幕上打印用户输入的扫描仪(扫描)结果来完成此操作。如何在屏幕上打印扫描仪的结果

如何做到这一点不同的方式 任何Ides的谢谢:)

try { 
    Scanner scan = new Scanner(new File("/Users/AlexSpallone/Desktop/name.txt")); 
     msg = " Your Name is" + scan; 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

回答

2

你应该调用nextLine方法您Scanner对象:

try { 
Scanner scan = new Scanner(new File("/Users/AlexSpallone/Desktop/name.txt")); 
    msg = " Your Name is" + scan.nextLine(); 
} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

不,我不希望它在我的意思是在GUI控制台被写。我如何使用字符串绘制它? – user2540802

+0

你需要做他所说的要获取字符串,但在GUI上绘制它是另一回事。 – tbodt

+0

谢谢你的工作YESSSSS – user2540802

0

使用此代码:

public class MyPanel extends JPanel { 
    public void paintComponenet(Graphics g) { 
     super.paintComponent(g); 
     try { 
      Scanner scan = new Scanner(new File("/Users/AlexSpallone/Desktop/name.txt")); 
      msg = " Your Name is" + scan.nextLine(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
     g.drawString(20, 20, msg); 
    } 
} 

然后将此类的一个对象添加到一个JFrame

+1

为什么?除了这个事实,如果该文件是一个大文件,它会阻止EDT,并使程序看起来像冻结,它不会处理像长行,文字换行,滚动等东西... – MadProgrammer

+0

我知道。我急于写一个答案。 – tbodt

+0

给OP似乎没有任何Swing的概念,与油一起投入火中似乎有点刺耳 - 恕我直言;) – MadProgrammer

1

看看How to use text areas

String msg = null; 
try { 
    Scanner scan = new Scanner(new File("/Users/AlexSpallone/Desktop/name.txt")); 
    msg = " Your Name is" + scan.nextLine(); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
JTextArea ta = new JTextArea(msg); 
add(new JScrollPane(ta)); 

同样的,如果它只是一个小String,你可以只使用一个JLabel。见How to use labels更多细节

我也想看看Creating a UI with Swing