Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package clientapp;
- import java.awt.BorderLayout;
- import java.awt.LayoutManager;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Arrays;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- public class Okno extends JFrame implements ActionListener{
- // св-ва
- // переменная типа JTable
- JTable table;
- // конструктор класса
- public Okno(){
- setTitle("Поступление товаров");
- setBounds(10, 10, 800, 600);
- // добавляем созданную панель в главное окно!
- getContentPane().add(createPanel());
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setVisible(true);
- }
- // методы
- private JPanel createPanel() {
- // главная панель
- JPanel p = new JPanel();
- // задаем компоновку для панели (компоновка позволяет расположить элементы опред образом)
- // получаем компоновку по-умолчанию - используем getLayout()
- LayoutManager m = p.getLayout();
- System.out.println("m=" + m);
- // задаем компоновку для панели - используем компоновку типа BorderLayout
- // устанавливаем компоновку - используем метод setLayout() с параметром
- p.setLayout(new BorderLayout());
- // колонки нашей таблицы (4 - колонки)
- String[] columns = {"№", "Наименование товара",
- "Остаток на складе", "Количество поступления"};
- // данные для таблицы
- String[][] data = {
- {"1", "Продукт1", "", ""},
- {"2", "Продукт2", "", ""},
- };
- // создаем таблицу
- table = new JTable(data, columns);
- // создаем объект для скроллирования данных таблицы
- JScrollPane scrollPane = new JScrollPane(table);
- // помещаем таблицу по центру экрана
- p.add(scrollPane, BorderLayout.CENTER);
- // панель содержит кнопки Выполнить, Выход
- JButton invokeB = new JButton("Выполнить");
- invokeB.addActionListener(this);
- JButton exitB = new JButton("Выход");
- exitB.addActionListener(this);
- // панель с кнопками
- JPanel bottomPanel = new JPanel();
- bottomPanel.add(invokeB);
- bottomPanel.add(exitB);
- // добавляем панел bottomPanel - помещаем ее вниз нашей панели
- p.add(bottomPanel, BorderLayout.SOUTH);
- return p;
- }
- // 1) получаем данные из колонки с индексом columnNum в виде массива строк
- public String[] getTableData(int columnNum) {
- System.out.println("getTableData.columnNum=" + columnNum);
- // // используем метод getValueAt класса JTable - возвращает объект по индексу строки и колонки
- // Object o = table.getValueAt(0, 0); // 0 - индекс строки, 0 - индекс колонки
- // System.out.println("getTableData.o.asstring=" + o.toString());
- // // количество строк таблицы
- // System.out.println("table.getRowCount()=" + table.getRowCount());
- // создаем массив строк - результат
- String[] result = new String[table.getRowCount()]; // table.getRowCount() - кол-во строк в таблице
- for(int i = 0; i < result.length; i++) {
- String cellValue = table.getValueAt(i, columnNum-1).toString();
- //System.out.println("getTableData.cellValue=" + cellValue);
- result[i] = cellValue;
- }
- return result;
- }
- // 2) установить данные в колонку columnNum, values - данные
- public void setTableData(int columnNum, String[] values) {
- // ...
- }
- // обработка событий
- @Override
- public void actionPerformed(ActionEvent e) {
- System.out.println("e.command=" + e.getActionCommand());
- // выполняем сравнение двух строк с помощью метода equals
- if("Выход".equals(e.getActionCommand())) {
- // выполняем выход из программы
- System.exit(0);
- } else if("Выполнить".equals(e.getActionCommand())) {
- //
- System.out.println("получаем данные из колонки №4 !!!");
- String[] sourceData = getTableData(4);
- System.out.println("Arrays.toString(sourceData)=" + Arrays.toString(sourceData));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement