0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 6
1

Приложение для просмотра базы данных

19.04.2016, 14:53. Показов 2286. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый день. Традиционно пытался несколько дней понять, как реализовать работу программы, не найдя решения прошу помощи у сообщества.

Оконное приложение на swing(внутри datalist и lable), второй класс в приложении используется для доступа и считывания БД.

Приложение для просмотра базы данных


Есть база данных db.db. При запуске программа считывает таблицу и записывает стобик NAME в datalist, при клике по имени из полученного списка значение имени помещается в соответствующий лейбл.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.Label;
 
 
public class Windows {
 
    private JFrame frame;
 
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Windows window = new Windows();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
 
    /**
     * Create the application.
     */
    public Windows() {
        initialize();
    }
 
    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        
 
        String items[] = new String[SetStringArray.getname().size()];              
        for(int j =0;j<SetStringArray.getname().size();j++){
          items[j] = (String) SetStringArray.getname().get(j);
        }
        
        final JList datalist = new JList(items);
        datalist.setBounds(20, 10, 82, 242);
        frame.getContentPane().add(datalist);
        
        JScrollPane scrollPane = new JScrollPane(datalist);
        scrollPane.setBounds(10, 10, 129, 241);
        frame.getContentPane().add(scrollPane);
        
        Label label = new Label("NAME:");
        label.setBounds(145, 10, 33, 22);
        frame.getContentPane().add(label);
        
        final Label name = new Label("");
        name.setBounds(221, 10, 62, 22);
        frame.getContentPane().add(name);
        
        Label label_1 = new Label("AGE:");
        label_1.setBounds(145, 38, 53, 22);
        frame.getContentPane().add(label_1);
        
        Label age = new Label("");
        age.setBounds(231, 38, 37, 22);
        frame.getContentPane().add(age);
        
    
        
        
        
        datalist.addListSelectionListener(new ListSelectionListener() {
 
            @Override
            public void valueChanged(ListSelectionEvent arg0) {
                if (!arg0.getValueIsAdjusting()) {
                      name.setText(datalist.getSelectedValue().toString());
                      name.setText(datalist.getSelectedValue().toString());
                      
                      
                }
            }
 
    
        });
      
 
        
    }
}
SetStringArray.class:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.sql.*;
import java.util.ArrayList;
 
public class SetStringArray {
 
     public static ArrayList<String> getname() {
         Connection c = null;
            Statement stmt = null;
            ArrayList<String> arrayname = new ArrayList<String>();
 
            ArrayList<String> arrayage = new ArrayList<String>();
            
            try {
              Class.forName("org.sqlite.JDBC");
              c = DriverManager.getConnection("jdbc:sqlite:db.db");
              c.setAutoCommit(false);
              stmt = c.createStatement();
              ResultSet rs = stmt.executeQuery( "SELECT * FROM TABLE;" );
 
              while ( rs.next() ) {
                     int rwid = rs.getRow();
                     String name = rs.getString("NAME");
                     String age  = rs.getString("AGE");
                     
                     arrayname.add(name);
                     arrayage.add(age);
                    
 
              }
 
              rs.close();
              stmt.close();
              c.close();
              
            } 
            
              catch ( Exception e ) {
              System.err.println( e.getClass().getName() + ": " + e.getMessage() );
              System.exit(0);
            }
 
        return arrayname;
          }
     
     }
Понимаю, что в таком виде SetStringArray.class передает только один параметр, но к сожалению это пока максимум к чему я пришел.
Как реализовать считывание и передачу взаимосвязанных параметров(соответствия имени возрасту)? Т.е. при клике по имени, в один лейбл записывалось бы имя, в другой лейбл записывался возраст выбранной персоны.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2016, 14:53
Ответы с готовыми решениями:

При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961)
При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных...

Пользовательское приложение для базы данных
Доброго времени суток всем! Срочно нужна помощь. Создала базу данных на Denwer. Теперь нужна...

Приложение для базы данных, не выводится таблица
Добрый день, делаю приложение для базы данных. Подключение бд происходит успешно, данные в бд есть,...

Приложение для просмотра свойств медиа файлов
Есть ли прога для андроида, показывающая полный список свойств малтимедиэ-файла? media info...

2
18 / 18 / 13
Регистрация: 18.06.2015
Сообщений: 79
19.04.2016, 15:27 2
Делайте по клику запрос в базу.
Что-то вроде:
SELECT AGE FROM TABLE WHERE NAME=выбранный элемент
0
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 6
19.04.2016, 15:57  [ТС] 3
в таблице есть ID rs.getRow(); надо основываясь на клике по нему делать селект из БД, т.к. имена могут быть разные... Спасибо за ответ, я подумаю как это реализовать.
0
19.04.2016, 15:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2016, 15:57
Помогаю со студенческими работами здесь

Разработать приложение для просмотра графических файлов
Задача 1. Разработать приложение для просмотра графических файлов

Создать приложение, для просмотра текстовой и графической информации
Помогите пожалуйста! Необходимо создать приложение, которое предназначено для просмотра текстовой...

Как сделать выборку из базы Access - удобную для просмотра!
Доброго времени суток! Имеется база данных Access для телефонистки, как сделать так чтобы ей было...

Написать С++ приложение для просмотра содержимого файлов образов *.iso
Доброго времени суток! Тема моей курсовой: Написать Windows-приложение для просмотра ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru