代码之家  ›  专栏  ›  技术社区  ›  Petay87

Java-在Netbeans中使用带有按钮单击事件的“throws IOException”时出现问题

  •  1
  • Petay87  · 技术社区  · 11 年前

    背景:

    我对Java编程和Netbeans IDE还很陌生,所以如果这对大多数人来说是一个简单的问题,我深表歉意。

    但是,我希望在单击按钮时运行以下代码:

        JFileChooser fileChooser = new JFileChooser();
        int returnValue = fileChooser.showOpenDialog(null);
        if (returnValue == fileChooser.APPROVE_OPTION){
            File file = fileChooser.getSelectedFile();
            Scanner InFile = new Scanner(new FileReader(file));
        while(InFile.hasNext())
        {
        String string1 = InFile.next();
      
        System.out.print(" " + string1);
        }
        
    

    问题是,为了让这段代码正确运行,我认为它需要 throws IOException 减速后的方法?

    因此……在Netbeans中,我创建了一个鼠标单击事件,并为我创建了以下内容:

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
    

    但是我需要的是:

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) throws IOException {

    问题是Netbeans似乎将这段代码设置为某种只读,我无法附加所需的代码。

    问题:

    因此,我的问题很简单。如何添加 throws IOException 代码需要在哪里?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Kayaman    11 年前

    您需要在方法中使用try/catch子句,而不是throws子句。

    try {
      JFileChooser fileChooser = new JFileChooser();
      int returnValue = fileChooser.showOpenDialog(null);
      if (returnValue == fileChooser.APPROVE_OPTION){
          File file = fileChooser.getSelectedFile();
          Scanner InFile = new Scanner(new FileReader(file));
      while(InFile.hasNext()) {
          String string1 = InFile.next();
          System.out.print(" " + string1);
      }
    } catch(IOException e) {
        e.printStackTrace();  // or handle in some other way
    }
    

    我还建议不要使用GUI生成器,或者至少不要尝试手动创建GUI。构建器可能允许您单击来创建东西,但它们通常不会用于严肃的项目(生成的代码变得非常混乱)。此外,如果您只使用GUI生成器,您将无法了解Swing的真正工作原理。