在JTabbedPane上有两个Panel,每个都有四个下拉框,每个下拉框的数据都是从数据库读取的.当选择
JTabbedPane时发生改变事件,来改变下拉框的值,但是当我改变的时候它的值并没有改变,而是原来读取的值,是怎么回事呢?
String []chooseName=new String[40];
try {
con = pp.getConnection();
stmt=con.createStatement();
if(CHANGE==0)
{
QUERYSTR="select cField from codetable where cTablename='custom'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
}
if(CHANGE==1)
{
QUERYSTR="select cField from codetable where cTablename='INSIDE'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
CustomerChoose1 = new JComboBox(chooseName);
CustomerChoose2 = new JComboBox(chooseName);
CustomerChoose3 = new JComboBox(chooseName);
CustomerChoose4 = new JComboBox(chooseName);
JTabbedPane时发生改变事件,来改变下拉框的值,但是当我改变的时候它的值并没有改变,而是原来读取的值,是怎么回事呢?
String []chooseName=new String[40];
try {
con = pp.getConnection();
stmt=con.createStatement();
if(CHANGE==0)
{
QUERYSTR="select cField from codetable where cTablename='custom'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
}
if(CHANGE==1)
{
QUERYSTR="select cField from codetable where cTablename='INSIDE'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
CustomerChoose1 = new JComboBox(chooseName);
CustomerChoose2 = new JComboBox(chooseName);
CustomerChoose3 = new JComboBox(chooseName);
CustomerChoose4 = new JComboBox(chooseName);
CHANGE=jTabbedPane1.getSelectedIndex();
if(CHANGE==0)
{ chooseData();
p1.add(panelGUI);//把组键加到p1上 System.out.println(QUERYSTR);
}
if(CHANGE==1)
{
chooseData();
p2.add(panelGUI);
System.out.println(QUERYSTR);
}
if(CHANGE==2)
{
chooseData();
p3.add(panelGUI);
}
if(CHANGE==3)
{
chooseData();
p4.add(panelGUI);
} if(CHANGE==4)
{
chooseData();
p5.add(panelGUI);
}
}
public void chooseData()
{
int value=0;
String []chooseName=new String[40];
try {
con = pp.getConnection();
stmt=con.createStatement(); if(CHANGE==0)
{
QUERYSTR="select cField from codetable where cTablename='custom'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
}
if(CHANGE==1)
{
QUERYSTR="select cField from codetable where cTablename='INSIDE'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
}
if(CHANGE==2)
{
QUERYSTR="select cField from codetable where cTablename='Detach'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
}
if(CHANGE==3)
{
QUERYSTR="select cField from codetable where cTablename='TOUCH'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
}
if(CHANGE==4)
{
QUERYSTR="select cField from codetable where cTablename='Customer'";
rs= stmt.executeQuery(QUERYSTR);
while(rs.next())
{
chooseName[value]=String.valueOf(rs.getString("cField"));
value++;
}
} CustomerChoose1 = new JComboBox(chooseName);
CustomerChoose2 = new JComboBox(chooseName);
CustomerChoose3 = new JComboBox(chooseName);
CustomerChoose4 = new JComboBox(chooseName);
CustomerChoose5 = new JComboBox(chooseName);
CustomerChoose5.setBounds(new Rectangle(90, 3, 141, 24));
CustomerChoose2.setBounds(new Rectangle(90, 2, 141, 24));
CustomerChoose1.setBounds(new Rectangle(90, 3, 141, 24));
CustomerChoose4.setBounds(new Rectangle(90, 3, 141, 24));
CustomerChoose3.setBounds(new Rectangle(90, 3, 141, 24));
}
catch (SQLException ex1) {
}
}
第二,customerchoose1,customerchoose2,customerchoose3,customerchoose4..
重新引用别的对象后,包含那些对象的面版,比如你的“panelGUI”必须重新清空一下内容,再重新导入你的customerchoose1,customerchoose2,customerchoose3,customerchoose4,否则包含还是原来的Jcombox