Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JList未显示在JScrollPane上_Java_Mysql_Sql_Swing_Jlist - Fatal编程技术网

Java JList未显示在JScrollPane上

Java JList未显示在JScrollPane上,java,mysql,sql,swing,jlist,Java,Mysql,Sql,Swing,Jlist,我正在为一家家族企业制定一项计划,该企业将管理其原材料供应商提供的宣传册。我发现你需要所有的代码,所以我把它贴在了pastebin上 但同时,我认为问题在于: tnBuscar.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { String search = searchField.getText(); Conn

我正在为一家家族企业制定一项计划,该企业将管理其原材料供应商提供的宣传册。我发现你需要所有的代码,所以我把它贴在了pastebin上

但同时,我认为问题在于:

tnBuscar.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e) {

            String search = searchField.getText();
            Connection con = null;
            java.sql.Statement st = null;
            ResultSet rs = null;

            String url = "jdbc:mysql://localhost:3306/";
            String db = "FAVEGA";
            String driver = "com.mysql.jdbc.Driver";
            String user = "root";
            String pass = "";
            try {
                Class.forName(driver);
                con = DriverManager.getConnection(url + db, user, pass);
                con.setAutoCommit(false);
                st = con.createStatement();
                String sql = "SELECT * FROM catalogos WHERE id = '" + search + "' OR name LIKE '%" + search + "%' OR keywords LIKE '%" + search + "%'";
                rs = st.executeQuery(sql);
                while (rs.next()) {
                    final String resultName = rs.getString("name");
                    buffer.add(resultName);
                }
            } catch (ClassNotFoundException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }finally{
                btnEditar.setVisible(true);
                btnReiniciar.setVisible(true);
                final JList list = new JList(buffer.toArray());         
                final JScrollPane scrollPane = new JScrollPane(list);
                scrollPane.add(list);
                scrollPane.setViewportBorder(new LineBorder(new Color(0, 0, 0)));
                scrollPane.setBounds(67, 195, 269, -143);
                buscarPanel.add(scrollPane);                    
                list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
                list.setBounds(0, 0, 435, 240);

                scrollPane.setPreferredSize(new Dimension(70, 80));
                list.setLayoutOrientation(JList.VERTICAL);
                buscarPanel.invalidate();
                buscarPanel.validate();
                btnEditar.addActionListener(new ActionListener(){
                    public void actionPerformed(ActionEvent e) {
                        if(list.getSelectedValue() != null){
                            String selectedValue = (String) list.getSelectedValue();
                            tab.setSelectedIndex(2);
                            btnReiniciar.addActionListener(new ActionListener(){
                                public void actionPerformed(ActionEvent e) {
                                scrollPane.setVisible(false);
                                btnEditar.setVisible(false);
                                btnReiniciar.setVisible(false);
                            }
                            });
                }
                    }
                });
            }
        }
    });
此按钮在我的数据库中搜索项目,但在运行时不知何故没有加载JList。有什么问题? PS:没有运行时错误,没有堆栈跟踪

  • 不要重新创建整个GUI

  • 使用而不是删除并将
    JComponents
    添加到
    JPanel

  • 最后
    块始终被激发,但不是创建GUI的正确位置

  • 如果从已经可见的
    容器中删除并添加
    JComponent
    ,则必须调用
    revalidate()
    &
    repaint()


  • 请你解释慢一点好吗?这是由windowsBuilder创建的,我对其进行了一些更改。我对Java和编程非常陌生,所以你能更详细地解释一下吗?@user1178729:你在finally块中创建了一大堆新组件,这些组件似乎不会显示在任何地方。为什么不简单地在GUI上已经实现的组件中显示信息呢?1+感谢mKorbel的精彩回答。最终声明中声明的组件将在后面显示。我只找到finally中声明的两个元素,即列表(我添加到这里是因为它从rs.hasNext()事件中获取缓冲区变量)和滚动窗格,我认为需要添加到那里,因为它需要列表。@user1178729:您应该开始使用布局管理器,因为绝对定位有可能导致错误,而且很难维持。我看到你的JScrollPane的边界有一个负高度,我不熟悉这个。这背后的理由是什么?我没有这么做。也许只是windowBuilder。。所以这是我的主要错误。。。我相信