Java 从数据库SQL填充JList
我一直试图用数据库中存在的信息填充一个下拉列表,但失败得很惨。 我看过多个指南,也有一些成功的代码,因为我是新手,所以无法复制,可能错过了一些步骤。 这就是我目前正在尝试的:Java 从数据库SQL填充JList,java,sql,swing,jdbc,jcombobox,Java,Sql,Swing,Jdbc,Jcombobox,我一直试图用数据库中存在的信息填充一个下拉列表,但失败得很惨。 我看过多个指南,也有一些成功的代码,因为我是新手,所以无法复制,可能错过了一些步骤。 这就是我目前正在尝试的: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class populategui extends JFrame { private JComboBox box; pri
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class populategui extends JFrame
{
private JComboBox box;
private JLabel picture;
private static String[ ] filename = {rs.next};
{
try
{
Class.forName(com.microsoft.jdbc.sqlserver);
Connection con = (Connection)DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=LIVE;integratedsecurity=true");
Statement st = con.createStatement();
String query="SELECT TOP(10)*FROM ERIT";
ResultSet rs = st.executeQuery(query);
while(rs.next());
}
catch(Exception e)
{
}
};
public populategui(){
super ("the title");
setLayout(new FlowLayout());
box=new JComboBox(filename);
}
}
如果您需要更多信息,请告诉我。您的部分问题在于您正在“挤压”可能会告诉您问题所在的异常。将其更改为(至少): 这样您就可以看到抛出了什么异常 更好的方法是记录异常
一般来说,捕获
java.lang.Exception
是一个坏主意,因为您可能最终捕获所有您没有预料到的异常。这是一个可怕的想法,捕捉异常,然后继续,就好像什么都没出问题一样。如果你扔掉关键证据,就很难找出你的程序为什么不起作用
最后,您似乎正在尝试通过复制和粘贴在internet上找到的示例来编写Java代码。这是编写不可靠代码的诀窍。您需要正确地学习该语言,去购买并阅读一本关于Java编程的好教材,或者参加(免费的)Oracle Java教程。我认为您的主要问题在于您的循环中没有操作:
ResultSet rs = st.executeQuery(query);
while(rs.next());
该代码是expandet:
ResultSet rs = st.executeQuery(query);
while(rs.next()){
// nothing to to (n-times)
}
这里真的没有足够的东西继续下去。它编译吗?它跑吗?有例外吗?如果是,堆栈跟踪是什么?它应该编译一个位于数据库中的信息下拉列表。。。它在NetBeans上运行并操作MS SQL。。。我不知道你说的堆栈跟踪im是什么意思sorry@NeedyHelpo-不,这不是他的意思:参见我的答案。java.lang.RuntimeException:不可编译的源代码-错误的树类型:在populategui。(populategui.java:25)在apple.main(populatetable.java:5)java.lang.RuntimeException:不可编译的源代码-错误的树类型:在populategui。(populategui.java:25)在apple.main(populatetable.java:5)@needyHelppo-so。。。你看到错误信息了吗?短语“不可编译的源代码”对您有什么意义吗?如果没有,您需要花时间学习Oracle Java教程!
ResultSet rs = st.executeQuery(query);
while(rs.next()){
// nothing to to (n-times)
}