Advertisement
sergAccount

Untitled

Mar 7th, 2021
635
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.93 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package clientapp;
  7.  
  8. import java.awt.BorderLayout;
  9. import java.awt.LayoutManager;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.util.Arrays;
  13. import javax.swing.JButton;
  14. import javax.swing.JFrame;
  15. import javax.swing.JPanel;
  16. import javax.swing.JScrollPane;
  17. import javax.swing.JTable;
  18.  
  19. public class Okno extends JFrame implements ActionListener{  
  20.     // св-ва    
  21.     // переменная типа JTable
  22.     JTable table;
  23.     // конструктор класса  
  24.     public Okno(){
  25.         setTitle("Поступление товаров");
  26.         setBounds(10, 10, 800, 600);
  27.         // добавляем созданную панель в главное окно!
  28.         getContentPane().add(createPanel());
  29.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  30.         setVisible(true);        
  31.     }    
  32.     // методы
  33.     private JPanel createPanel() {    
  34.         // главная панель
  35.         JPanel p = new JPanel();
  36.         // задаем компоновку для панели (компоновка позволяет расположить элементы опред образом)
  37.         // получаем компоновку по-умолчанию - используем getLayout()
  38.         LayoutManager m = p.getLayout();
  39.         System.out.println("m=" + m);
  40.         // задаем компоновку для панели - используем компоновку типа BorderLayout
  41.         // устанавливаем компоновку - используем метод setLayout() с параметром
  42.         p.setLayout(new BorderLayout());
  43.         // колонки нашей таблицы (4 - колонки)
  44.         String[] columns = {"№", "Наименование товара",
  45.                             "Остаток на складе", "Количество поступления"};        
  46.         // данные для таблицы
  47.         String[][] data = {
  48.                             {"1", "Продукт1", "", ""},
  49.                             {"2", "Продукт2", "", ""},
  50.         };
  51.         // создаем таблицу
  52.         table = new JTable(data, columns);
  53.         // создаем объект для скроллирования данных таблицы
  54.         JScrollPane scrollPane = new JScrollPane(table);
  55.         // помещаем таблицу по центру экрана
  56.         p.add(scrollPane, BorderLayout.CENTER);
  57.         // панель содержит кнопки Выполнить, Выход
  58.         JButton invokeB = new JButton("Выполнить");
  59.         invokeB.addActionListener(this);
  60.         JButton exitB = new JButton("Выход");
  61.         exitB.addActionListener(this);
  62.         // панель с кнопками
  63.         JPanel bottomPanel = new JPanel();
  64.         bottomPanel.add(invokeB);
  65.         bottomPanel.add(exitB);
  66.         // добавляем панел bottomPanel - помещаем ее вниз нашей панели
  67.         p.add(bottomPanel, BorderLayout.SOUTH);                
  68.         return p;
  69.     }
  70.     // 1) получаем данные из колонки с индексом columnNum в виде массива строк  
  71.     public String[] getTableData(int columnNum) {
  72.         System.out.println("getTableData.columnNum=" + columnNum);
  73. //        // используем метод getValueAt класса JTable - возвращает объект по индексу строки и колонки
  74. //        Object o = table.getValueAt(0, 0); // 0 - индекс строки, 0 - индекс колонки
  75. //        System.out.println("getTableData.o.asstring=" + o.toString());        
  76. //        // количество строк таблицы
  77. //        System.out.println("table.getRowCount()=" + table.getRowCount());
  78.         // создаем массив строк - результат
  79.         String[] result = new String[table.getRowCount()]; //  table.getRowCount() - кол-во строк в таблице
  80.         for(int i = 0; i < result.length; i++) {
  81.             String cellValue = table.getValueAt(i, columnNum-1).toString();
  82.             //System.out.println("getTableData.cellValue=" + cellValue);
  83.             result[i] = cellValue;
  84.         }
  85.         return result;
  86.     }    
  87.     // 2) установить данные в колонку columnNum, values - данные
  88.     public void setTableData(int columnNum, String[] values) {
  89.         // метод setValueAt позволяет установить значение в ячейку таблицы, row - индекс строки, column - индекс колонки
  90.         //table.setValueAt("HELLO", 0, 0);
  91.         for (int i = 0; i < values.length; i++) {
  92.             table.setValueAt(values[i], i, columnNum-1);
  93.         }
  94.     }
  95.     // обработка событий
  96.     @Override
  97.     public void actionPerformed(ActionEvent e) {
  98.         System.out.println("e.command=" + e.getActionCommand());
  99.         // выполняем сравнение двух строк с помощью метода equals
  100.         if("Выход".equals(e.getActionCommand())) {
  101.             // выполняем выход из программы
  102.             System.exit(0);
  103.         } else if("Выполнить".equals(e.getActionCommand())) {
  104.             //
  105.             System.out.println("получаем данные из колонки №4 !!!");
  106.             // 1) получаем данные из колонки номер 4)
  107.             String[] sourceData = getTableData(4);
  108.             System.out.println("Arrays.toString(sourceData)=" + Arrays.toString(sourceData));
  109.             setTableData(3, sourceData);
  110.         }
  111.     }
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement