Считать из БД и вывести при checkBox event - Java (241686)

Узнай цену своей работы

Формулировка задачи:

суть проблемы такова: в лейбл рядом с чек боксом не выводит никаких varchar значений, но выводит цифровые значения.
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);

    }
 
}
ошибка:
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)
бд создается запросами
CREATE TABLE DIPLOMA (
  a NUMBER,
  b varchar2(100)
);
INSERT INTO DIPLOMA (A, B)
VALUES ('20', 'SOME TET10');
где строчка
INSERT INTO DIPLOMA (A, B)
VALUES ('20', 'SOME TET10');
повторяется с числами от 11 до 20 в столбце А и с числами до 10 во 2 столбце
Вобщем поменял дома оракл на постегер драйвера, создал такую же базу, все заработало. Просто я не люблю оракл и оно это чувствует.( ну или стоило поменять кодировку)

Решение задачи: «Считать из БД и вывести при checkBox event»

textual
Листинг программы
checkBox[i].setMnemonic(KeyEvent.VK_S);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы