Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 3
Регистрация: 08.05.2012
Сообщений: 105

Считать из БД и вывести при checkBox event

01.04.2015, 00:30. Показов 896. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
суть проблемы такова: в лейбл рядом с чек боксом не выводит никаких varchar значений, но выводит цифровые значения.
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
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import javax.swing.*;
 
public class DiplomaTry extends JFrame{
    private String url="jdbc:oracle:thin:@tlayshev:1521:TEST",
            login="tester",
            password="qwe123",
            query="SELECT B FROM DIPLOMA WHERE A > ?";
    JCheckBox checkBox = new JCheckBox();
    List<String> querylist = new ArrayList<String>();
     Connection con;
     
     public void init(){
            try {
                DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
                }
                
             catch (Exception e) {
                e.printStackTrace();
                
            }
 
        }
     public List<String> adr(){
            
            ResultSet rs = null;
            
            try{
            if(con==null){
                con= DriverManager.getConnection(url, login, password);
            }
            PreparedStatement pstmt = con.prepareStatement(query);
            pstmt.setInt(1, 15);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                String str = rs.getString(1);
                System.out.println(str);
                querylist.add(str);
                //querylist.add(rs.getString(1));
            }
            }
             catch (SQLException e) {
                    e.printStackTrace();
                }
            return querylist;
        }
     ActionListener actionListener = new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
                init();
                List<String> querylist2=(List<String>) adr();
            AbstractButton abstractButton = (AbstractButton)actionEvent.getSource();
            boolean selected = abstractButton.getModel().isSelected();
            String newLabel = (selected ? querylist2.get(7) : querylist2.get(3));
            abstractButton.setText(newLabel);
          }
        };
     DiplomaTry(String s){
            super(s);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            try {
                con = DriverManager.getConnection(url, login, password);
            } catch (SQLException e) {
                
                e.printStackTrace();
            }
            Font f= new Font("Serif", Font.BOLD, 15);
            //setFont(f);
            checkBox.addActionListener(actionListener);
            checkBox.setMnemonic(KeyEvent.VK_S);
            Container contentPane = getContentPane();
            contentPane.add(checkBox, BorderLayout.NORTH);
            setSize(400, 400);
            //setVisible(true);
            
            }
     
        
        
     
 
    public static void main(String[] args) {
        new DiplomaTry("Selecting CheckBox").setVisible(true);
 
        
 
    }
 
}
ошибка:
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
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 7, Size: 0
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at DiplomaTry$1.actionPerformed(DiplomaTry.java:62)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 0
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at DiplomaTry$1.actionPerformed(DiplomaTry.java:62)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
бд создается запросами
SQL
1
2
3
4
5
6
CREATE TABLE DIPLOMA (
  a NUMBER,
  b varchar2(100)
);
INSERT INTO DIPLOMA (A, B)
VALUES ('20', 'SOME TET10');
где строчка
SQL
1
2
INSERT INTO DIPLOMA (A, B)
VALUES ('20', 'SOME TET10');
повторяется с числами от 11 до 20 в столбце А и с числами до 10 во 2 столбце

Добавлено через 9 часов 29 минут
Вобщем поменял дома оракл на постегер драйвера, создал такую же базу, все заработало. Просто я не люблю оракл и оно это чувствует.( ну или стоило поменять кодировку)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2015, 00:30
Ответы с готовыми решениями:

Считать из БД и вывести при checkBox event
Добрый день! простите, что беспокою! нужно вывести сообщение в лейбл из БД, если стоит галочка на чекбоксе. Пока не знаю выведет ли...

Событие Event.COPY Event.PASTE Event.CUT
Привет я не знаю как написать код в котором текстовое поле реагировало бы на события копирования/вставки/вырезки В справочнике написано,...

При нажатии на checkbox вывести график функции
Подскажите пожалуйста!! Мне надо при нажатии на checkbox вывести (график функциии)) тоесть когда я нажимаю на checkbox то должно появится...

7
23 / 23 / 12
Регистрация: 25.03.2015
Сообщений: 98
01.04.2015, 03:14
Повторю вопрос из предыдущего поста:
Java
1
System.out.println(str);
выводит необходимые строки? (их должно быть больше 7)
0
1 / 1 / 3
Регистрация: 08.05.2012
Сообщений: 105
01.04.2015, 08:54  [ТС]
нет, не выводит
0
23 / 23 / 12
Регистрация: 25.03.2015
Сообщений: 98
01.04.2015, 09:04
Попробуйте заменить PreparedStatement на Statement

Добавлено через 1 минуту
И посмотрите, что приходит в базу данных от вашего приложения (через какой нибудь профайлер) - убедитесь что запрос приходит или не приходит, и каковы результаты того запроса.
0
1 / 1 / 3
Регистрация: 08.05.2012
Сообщений: 105
01.04.2015, 09:05  [ТС]
не могу, тк для дальнейшей работоспособности проги это очень актуально. почему не читает стринг именно из оракл бд? бд на постегре была идентичная этой, а все работает нормально. может случиться так, что у меня кривая раскладка просто в оракл бд? что-тотдругое вместо utf
0
23 / 23 / 12
Регистрация: 25.03.2015
Сообщений: 98
01.04.2015, 09:06
а может быть драйвер, который вы используете кривой. Попробуйте другой драйвер.
1
1 / 1 / 3
Регистрация: 08.05.2012
Сообщений: 105
01.04.2015, 13:21  [ТС]
попробовал все с базой, у меня нет props$ таблицы в базе 0_о. а Вы не подскажите, где ошибка тут? я попытался тот же код загнать в for, чтобы создать 5 чек боксов. пишет NullPointerExeption
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
99
100
101
102
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import javax.swing.*;
 
public class DiplomaTry extends JFrame{
    private String url="jdbc:oracle:thin:@tlayshev:1521:TEST",
            login="tester",
            password="qwe123",
            query="SELECT * FROM TESTTABLE WHERE ID > ?",
            empty="";
    JCheckBox checkBox[] = new JCheckBox[5];
    List<String> querylist = new ArrayList<String>();
     Connection con;
     
     public void init(){
            try {
                DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
                }
                
             catch (Exception e) {
                e.printStackTrace();
                
            }
 
        }
     public List<String> adr(){
            
            ResultSet rs = null;
            
            try{
            if(con==null){
                con= DriverManager.getConnection(url, login, password);
            }
            PreparedStatement pstmt = con.prepareStatement(query);
            pstmt.setInt(1, 1);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                /*String str = rs.getString(1);
                System.out.println(str);
                querylist.add(str);*/
                querylist.add(rs.getString(1));
            }
            }
             catch (SQLException e) {
                    e.printStackTrace();
                }
            return querylist;
        }
     ActionListener actionListener = new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
                init();
                List<String> querylist2=(List<String>) adr();
                for(int i = 0; i <=4; i++){
            AbstractButton abstractButton = (AbstractButton)actionEvent.getSource();
            boolean selected = abstractButton.getModel().isSelected();
            String newLabel = (selected ? querylist2.get(i) : empty);
            abstractButton.setText(newLabel);
                }
          }
        };
     DiplomaTry(String s){
            super(s);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            try {
                con = DriverManager.getConnection(url, login, password);
            } catch (SQLException e) {
                
                e.printStackTrace();
            }
            Font f= new Font("Serif", Font.BOLD, 15);
            //setFont(f);
            for(int i = 0; i <=4; i++){
            checkBox[i].addActionListener(actionListener);
            checkBox[i].setMnemonic(KeyEvent.VK_S);
            Container contentPane = getContentPane();
            contentPane.add(checkBox[i], BorderLayout.NORTH);
            }
            setSize(400, 400);
            //setVisible(true);
            
            }
     
        
        
     
 
    public static void main(String[] args) {
        new DiplomaTry("Selecting CheckBox").setVisible(true);
 
        
 
    }
 
}
0
23 / 23 / 12
Регистрация: 25.03.2015
Сообщений: 98
01.04.2015, 16:46
Для начала:
Java
1
2
3
for(int i = 0; i < 5; i++){
            checkBox[i] = new JCheckBox();
            checkBox[i].addActionListener(actionListener);
Добавлено через 4 минуты
Далее:
1)
Java
1
contentPane.add(checkBox[i], BorderLayout.NORTH);
- у вас будет показан только один чек бокс (последний).
2)
Java
1
checkBox[i].setMnemonic(KeyEvent.VK_S);
- уверены что один мнемоник для всех чек боксов?

И хотелось бы услышать описание задачи, а по коду херня какая то (к каждому чек боксу привязывается слушатель, который пытает обработать пять не понятных строк - есть у меня подозрения что эти числа 5 и 5 как то должны быть связаны)

Добавлено через 2 минуты
И код в конце концов хотя бы частично окультурить:
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
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import javax.swing.*;
 
public class DiplomaTry extends JFrame{
    private String url = "jdbc:oracle:thin:@tlayshev:1521:TEST";
    private String login = "tester";
    private String password = "qwe123";
    private Connection con;
    private final String query = "SELECT * FROM TESTTABLE WHERE ID > ?";
    private final String empty = "";
    private JCheckBox [] checkBox = new JCheckBox[5];
    
    private ActionListener actionListener = new ActionListener() {
        @Override public void actionPerformed(ActionEvent actionEvent) {
            List<String> querylist2 = adr();
            for(int i = 0; i < 5; i++) {
                AbstractButton abstractButton = 
                        (AbstractButton)actionEvent.getSource();
                boolean selected = abstractButton.getModel().isSelected();
                String newLabel = (selected ? querylist2.get(i) : empty);
                abstractButton.setText(newLabel);
            }
        }
    };
    
    {
        try {
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            con = DriverManager.getConnection(url, login, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public DiplomaTry(String s){
        super(s);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container contentPane = getContentPane();
        contentPane.setLayout(new FlowLayout());
        for(int i = 0; i < 5; i++){
            checkBox[i] = new JCheckBox();
            checkBox[i].addActionListener(actionListener);
            checkBox[i].setMnemonic(KeyEvent.VK_S);
            contentPane.add(checkBox[i]);
        }
        setSize(400, 400);
    }
    
    public List<String> adr() {
        List<String> resultList = new ArrayList<>();
        try (PreparedStatement pstmt = con.prepareStatement(query)) {
            pstmt.setInt(1, 1);
            ResultSet rs = pstmt.executeQuery();
            while ( rs.next() ) {
                resultList.add(rs.getString(1));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return resultList;
    }
 
    public static void main( String[] args ) {
        new DiplomaTry("Selecting CheckBox").setVisible(true);
    }
}
Добавлено через 1 минуту
Java
1
checkBox[i].setMnemonic(KeyEvent.VK_S);
- можно удалить, т.к. применяется только к последнему чек боксу
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2015, 16:46
Помогаю со студенческими работами здесь

Нужно, чтобы при checkbox.checked=true я мог набирать текст в textbox-е, ну и соответственно при checkbox.checked=false - нет.
есть checkbox и textbox. Нужно, чтобы при checkbox.checked=true я мог набирать текст в textbox-е, ну и соответственно при...

Как при нажатии на CheckBox передавать в DbEdit определенное слово или Caption CheckBox'а?
Народ у меня сложилась такая ситуация. Пишу БД. У меня на форме есть 2 компонента DBEdit и несколько CheckBox. И у меня возник такой...

Выбрать все checkbox при нажатие на главном checkbox
Не могу никак реализовать, допустим как это сделано на почтах или как mail.ru. При выборе главного checkbox выбираются все, при повторном...

Обработка checkbox. При пустом checkbox в таблицу не заносится 0
Когда галочка стоит в таблицу заносится 1 когда галочка отсутствует в таблицу не заносится 0 подскажите в чем моя ошибка? for($a=1;...

Как считать галочки с генерированных CheckBox?
Имеется ряд сгенерированих TextBox, текст з которих считивается таким образом : foreach (Control c in answersPanel.Controls) ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru