Scanner файла в jFrame - Java

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста, как можно считать данные из файла в массив? Делал тоже самое не в jFrame, а в "консоли", то все отлично работало. Буду очень сильно благодарен за ответ! Делал вот так:
Листинг программы
  1. int[][] arr=new int[5][5];
  2. Scanner sc;
  3. sc = new Scanner("E:\\test.txt");
  4. for (int i = 0; i < 5; i++)
  5. {
  6. for (int j = 0; j < 5; j++)
  7. {
  8. arr[i][j] = sc.nextInt();
  9. }
  10. }
Это все добавил в кнопку. Но выдало ошибки: Exception in thread "AWT-EventQueue-0" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at NewJFrame.jButton5ActionPerformed(NewJFrame.java:295) at NewJFrame.access$300(NewJFrame.java:31) at NewJFrame$5.actionPerformed(NewJFrame.java:234) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Решение задачи: «Scanner файла в jFrame»

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.IOException;
  8. import java.util.Scanner;
  9.  
  10. public class FrameArray extends JFrame {
  11.     JTextField jTextField;
  12.     JButton jButton;
  13.     JTextArea jTextArea;
  14.     int[][] a;
  15.  
  16.     public FrameArray() throws HeadlessException {
  17.  
  18.         jTextField = new JTextField("D:\\test.txt");
  19.         jTextField.setPreferredSize(new Dimension(250, 20));
  20.  
  21.  
  22.         jTextArea = new JTextArea();
  23.         jTextArea.setPreferredSize(new Dimension(400, 200));
  24.  
  25.         jButton = new JButton("Load ");
  26.         jButton.addActionListener(new ActionListener() {
  27.             @Override
  28.             public void actionPerformed(ActionEvent e) {
  29.                 File file = new File(jTextField.getText());
  30.                 if (!file.exists()) {
  31.                     JOptionPane.showMessageDialog(null, " File not Found! ");
  32.                     return;
  33.                 }
  34.                 if(!loadArray(file)) {
  35.                     JOptionPane.showMessageDialog(null, " File not Found! ");
  36.                     return;
  37.                 }
  38.                 loadText();
  39. //                JOptionPane.showMessageDialog(null, "Load done! ");
  40.  
  41.             }
  42.         });
  43.  
  44.         JPanel jPanel = new JPanel(new FlowLayout());
  45.         jPanel.add(jTextField);
  46.         jPanel.add(jButton);
  47.         add(jPanel, BorderLayout.NORTH);
  48.         add(jTextArea);
  49.  
  50.  
  51.     }
  52.  
  53.     private boolean loadArray(File file) {
  54.         Scanner in = null;
  55.         try {
  56.             in = new Scanner(new FileInputStream(file));
  57.             if (!in.hasNextInt()) {
  58.                 JOptionPane.showMessageDialog(null, " wrong format! ");
  59.             }
  60.             int n = in.nextInt();  // rows
  61.             if (!in.hasNextInt()) {
  62.                 JOptionPane.showMessageDialog(null, " wrong format! ");
  63.             }
  64.             int m = in.nextInt();  // columns
  65.  
  66.             a = new int[n][m];
  67.             for (int i = 0; i < n; i++) {
  68.                 for (int j = 0; j < m; j++) {
  69.                     if (!in.hasNextInt()) {
  70.                         JOptionPane.showMessageDialog(null, " wrong format! ");
  71.                         return false;
  72.                     }
  73.                     a[i][j] = in.nextInt();
  74.                 }
  75.             }
  76.             in.close();
  77.         } catch (IOException e) {
  78.             throw new RuntimeException(e);
  79.         }
  80.         return true;
  81.     }
  82.  
  83.     private void loadText() {
  84.         jTextArea.setText("array a["+a.length+"]["+a[0].length+"] values:\n");
  85.         for (int i = 0; i < a.length; i++) {
  86.             for (int j = 0; j < a[i].length; j++) {
  87.                 jTextArea.append("a[" + i + "][" + j + "]="+a[i][j]+"\n");
  88.             }
  89.         }
  90.  
  91.     }
  92.  
  93.  
  94.     public static void main(String[] args) {
  95.         SwingUtilities.invokeLater(new Runnable() {
  96.             @Override
  97.             public void run() {
  98.                 JFrame frame = new FrameArray();
  99.                 frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  100.                 frame.setLocationRelativeTo(frame.getParent());
  101.                 frame.setSize(800, 600);
  102.                 frame.setVisible(true);
  103.             }
  104.         });
  105.     }
  106. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут