一个swing的问题

xywl 2004-11-21 05:34:57
我写的一个窗口,jcombox老是出问题,不能点出选择项目。请大哥请教。
package com.xywl.testha;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/*
*
*
*
*/

public class Info extends javax.swing.JFrame{

javax.swing.JComboBox datadriver;
javax.swing.JTextField dataclass;
javax.swing.JTextField dataurl;
javax.swing.JTextField datauser;
javax.swing.JTextField datapwd;
public Info(){
//this.setBounds(100,100,400,200);
this.addWindowListener(new java.awt.event.WindowListener(){
public void windowOpened(WindowEvent e){}
public void windowClosing(WindowEvent e){
System.out.println("Windows closing");
System.exit(0);
}
public void windowClosed(WindowEvent e){
System.out.println("Windows closed");
}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
}
);
this.setTitle("Input the Database connect informations.");
this.setResizable(false);
javax.swing.JRootPane rootpane=this.getRootPane();

rootpane.setLayout(new java.awt.BorderLayout());
javax.swing.JPanel mainpanel=new javax.swing.JPanel();
mainpanel.setLayout(new java.awt.GridLayout(6,1));
rootpane.add(mainpanel,java.awt.BorderLayout.CENTER);
javax.swing.JPanel dbdriver=new javax.swing.JPanel();
javax.swing.JPanel dbclass=new javax.swing.JPanel();
javax.swing.JPanel dburl=new javax.swing.JPanel();
javax.swing.JPanel button=new javax.swing.JPanel();
javax.swing.JPanel dbuser=new javax.swing.JPanel();
javax.swing.JPanel dbpwd=new javax.swing.JPanel();

mainpanel.add(dbdriver);
mainpanel.add(dbclass);
mainpanel.add(dburl);
mainpanel.add(dbuser);
mainpanel.add(dbpwd);
mainpanel.add(button);

dbdriver.add(new javax.swing.JLabel("Database Driver "));
//datadriver=new javax.swing.JTextField();
//datadriver.setColumns(25);
String[] s={"Oracle","IBM DB2 UDB"};
datadriver=new javax.swing.JComboBox(s);
dbdriver.add(datadriver);
java.awt.FlowLayout driverlay=new java.awt.FlowLayout();
driverlay.setAlignment(java.awt.FlowLayout.LEFT);
dbdriver.setLayout(driverlay);


dbclass.add(new javax.swing.JLabel("Driver Class "));
dataclass=new javax.swing.JTextField();
dataclass.setColumns(25);
//Test Oracle
dataclass.setText("oracle.jdbc.driver.OracleDriver");
dbclass.add(dataclass);

dburl.add(new javax.swing.JLabel("Driver Conn URL"));
dataurl=new javax.swing.JTextField();
dataurl.setColumns(25);
//Test Oracle
dataurl.setText("jdbc:oracle:thin:@ip:1521:serviceName");
dburl.add(dataurl);

dbuser.add(new javax.swing.JLabel("User Name "));
dbuser.add(new javax.swing.JLabel());
datauser=new javax.swing.JTextField();
datauser.setColumns(25);
dbuser.add(datauser);

dbpwd.add(new javax.swing.JLabel("User Password "));
datapwd=new javax.swing.JTextField();
datapwd.setColumns(25);
dbpwd.add(datapwd);

javax.swing.JButton Testconn =new javax.swing.JButton("TestConnection");
javax.swing.JButton OK=new javax.swing.JButton("OK");
javax.swing.JButton Exit=new javax.swing.JButton("Exit");
Exit.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
Testconn.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
//Test Database connection
try{
Class.forName(dataclass.getText());
}
catch(Exception ex){
javax.swing.JOptionPane.showMessageDialog(null,ex.toString(),null,javax.swing.JOptionPane.ERROR_MESSAGE);
}
}
});
button.add(Testconn);
button.add(OK);
button.add(Exit);
OK.setEnabled(false);


}
}
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
beakham 2004-11-22
  • 打赏
  • 举报
回复
同意vongood
御南 2004-11-22
  • 打赏
  • 举报
回复
不知道为什么用javax.swing.JRootPane rootpane = this.getRootPane();就不行呢?
必须在内容层中使用才有效
wtobias 2004-11-22
  • 打赏
  • 举报
回复
不明白楼主什么意思
xywl 2004-11-22
  • 打赏
  • 举报
回复
好像是这个问题,用getContentPane就可以了.
funcreal 2004-11-21
  • 打赏
  • 举报
回复
没看到什么错误啊,我放到机子上运行好好的。
是不是没有main函数啊?
vongood 2004-11-21
  • 打赏
  • 举报
回复
同上。。。
不要用javax.swing.JRootPane rootpane = this.getRootPane();

javax.swing.JPanel rootpane=new JPanel();
this.getContentPane().add(rootpane);
mq612 2004-11-21
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Info extends javax.swing.JFrame {

javax.swing.JComboBox datadriver;
javax.swing.JTextField dataclass;
javax.swing.JTextField dataurl;
javax.swing.JTextField datauser;
javax.swing.JTextField datapwd;
public Info() {
//this.setBounds(100,100,400,200);
this.addWindowListener(new java.awt.event.WindowListener() {
public void windowOpened(WindowEvent e) {}

public void windowClosing(WindowEvent e) {
System.out.println("Windows closing");
System.exit(0);
}

public void windowClosed(WindowEvent e) {
System.out.println("Windows closed");
}

public void windowIconified(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowActivated(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}
}
);
this.setTitle("Input the Database connect informations.");
this.setResizable(false);
//javax.swing.JRootPane rootpane = this.getRootPane();

//rootpane.setLayout(new java.awt.BorderLayout());
javax.swing.JPanel mainpanel = new javax.swing.JPanel();
mainpanel.setLayout(new java.awt.GridLayout(6, 1));
this.getContentPane().add(mainpanel, java.awt.BorderLayout.CENTER);
javax.swing.JPanel dbdriver = new javax.swing.JPanel();
javax.swing.JPanel dbclass = new javax.swing.JPanel();
javax.swing.JPanel dburl = new javax.swing.JPanel();
javax.swing.JPanel button = new javax.swing.JPanel();
javax.swing.JPanel dbuser = new javax.swing.JPanel();
javax.swing.JPanel dbpwd = new javax.swing.JPanel();

mainpanel.add(dbdriver);
mainpanel.add(dbclass);
mainpanel.add(dburl);
mainpanel.add(dbuser);
mainpanel.add(dbpwd);
mainpanel.add(button);

dbdriver.add(new javax.swing.JLabel("Database Driver "));
//datadriver=new javax.swing.JTextField();
//datadriver.setColumns(25);
String[] s = {
"Oracle", "IBM DB2 UDB"};
datadriver = new javax.swing.JComboBox(s);
dbdriver.add(datadriver);
java.awt.FlowLayout driverlay = new java.awt.FlowLayout();
driverlay.setAlignment(java.awt.FlowLayout.LEFT);
dbdriver.setLayout(driverlay);

dbclass.add(new javax.swing.JLabel("Driver Class "));
dataclass = new javax.swing.JTextField();
dataclass.setColumns(25);
//Test Oracle
dataclass.setText("oracle.jdbc.driver.OracleDriver");
dbclass.add(dataclass);

dburl.add(new javax.swing.JLabel("Driver Conn URL"));
dataurl = new javax.swing.JTextField();
dataurl.setColumns(25);
//Test Oracle
dataurl.setText("jdbc:oracle:thin:@ip:1521:serviceName");
dburl.add(dataurl);

dbuser.add(new javax.swing.JLabel("User Name "));
dbuser.add(new javax.swing.JLabel());
datauser = new javax.swing.JTextField();
datauser.setColumns(25);
dbuser.add(datauser);

dbpwd.add(new javax.swing.JLabel("User Password "));
datapwd = new javax.swing.JTextField();
datapwd.setColumns(25);
dbpwd.add(datapwd);

javax.swing.JButton Testconn = new javax.swing.JButton("TestConnection");
javax.swing.JButton OK = new javax.swing.JButton("OK");
javax.swing.JButton Exit = new javax.swing.JButton("Exit");
Exit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
Testconn.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
//Test Database connection
try {
Class.forName(dataclass.getText());
}
catch (Exception ex) {
javax.swing.JOptionPane.showMessageDialog(null, ex.toString(), null,
javax.swing.JOptionPane.ERROR_MESSAGE);
}
}
});
button.add(Testconn);
button.add(OK);
button.add(Exit);
OK.setEnabled(false);

}

}
St0ne82 2004-11-21
  • 打赏
  • 举报
回复
try:

javax.swing.JRootPane rootpane=this.getRootPane();
----->
java.awt.Container rootpane=this.getContentPane();
jxj12345678 2004-11-21
  • 打赏
  • 举报
回复
什么错误?
hhlong 2004-11-21
  • 打赏
  • 举报
回复
帮你顶

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧