sergAccount

Untitled

Mar 7th, 2021
522
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
  114.  
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×