请教一个getText的问题。十万火急!

lovesong 2001-08-24 10:05:07
一个Frame上面放了几个按纽,然后程序运行的时候动态
在Frame上加载一个panel,这个panel里面有几个TextField,
在TextField录入数据后,想通过Frame上的按纽对这些TextField
的数值进行处理,于是在动态加载的那个panel里面写了一个
方法进行getText操作并在Frame上的按纽上进行调用,但是发现
取出的数值始终为空,而如果在panel里面添加一个按纽的话就可
以getText,不知道这是怎么回事,请各位大虾赐教。
...全文
86 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovesong 2001-08-24
  • 打赏
  • 举报
回复
主frame的代码如下:
package mms;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.event.*;

import javax.swing.tree.*;
import javax.swing.tree.DefaultTreeModel;


public class frmmain extends JFrame {
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuArchive = new JMenu();
JMenuItem jMenuMp = new JMenuItem();
JMenu jMenuPl = new JMenu();
JMenuItem jMenuFixre = new JMenuItem();
ImageIcon image1;
ImageIcon image2;
ImageIcon image3;
JMenuItem jMenuPuao = new JMenuItem();
JMenuItem jMenuICt = new JMenuItem();
JMenuItem jMenuMeter = new JMenuItem();
JMenu jMenuPlevent = new JMenu();
JMenuItem jMenuEvent = new JMenuItem();
JMenuItem jMenuPldata = new JMenuItem();
JMenuItem jMenuTxt = new JMenuItem();
JMenu jMenuTmp2Mp = new JMenu();
JMenuItem jMenuTs = new JMenuItem();
JMenuItem jMenuItem1 = new JMenuItem();
JMenu jMenuSystem = new JMenu();
JMenuItem jMenuAbout = new JMenuItem();
JMenuItem jMenuExit = new JMenuItem();
JMenuItem jMenuHep = new JMenuItem();

JButton jButton_modi = new JButton();
JButton jButton_addmp = new JButton();
JButton jButton_addps = new JButton();
JSplitPane jSplitPane1 = new JSplitPane();
JScrollPane jScrollPane1 = new JScrollPane();

clsNode root = new clsNode("计量系统");
JTree jTreeMp = new JTree(root);

JButton jButton_cancel = new JButton();
JButton jButton_save = new JButton();
JButton jButton_del = new JButton();
JPanel jPanelMain = new JPanel();
JLabel statusBar = new JLabel();
GridBagLayout gridBagLayout1 = new GridBagLayout();
GridLayout gridLayout1 = new GridLayout();

Panel_dwps panel_dwps = new Panel_dwps();
Panel_dwmp panel_dwmp = new Panel_dwmp();


/**Construct the frame*/
public frmmain() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception {

image1 = new ImageIcon(mms.frmMms.class.getResource("openFile.gif"));
image2 = new ImageIcon(mms.frmMms.class.getResource("closeFile.gif"));
image3 = new ImageIcon(mms.frmMms.class.getResource("help.gif"));
//setIconImage(Toolkit.getDefaultToolkit().createImage(frmMms.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(gridBagLayout1);

//设置应用程序全屏
this.setSize(new Dimension(1024, 798));

this.setTitle("计量管理");
jMenuArchive.setText("档案管理");
jMenuMp.setText("计量管理");
jMenuAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuAbout_actionPerformed(e);
}
});
jMenuPl.setText("数据管理");
jMenuFixre.setText("补抄表码维护");
jMenuExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuExit_actionPerformed(e);
}
});
jMenuPuao.setText("对象管理");
jMenuICt.setText("换CT记录维护");
jMenuMeter.setText("换表记录维护");
jMenuPlevent.setText("旁路记录维护");
jMenuEvent.setText("旁路事件录入");
jMenuPldata.setText("旁路数据录入");
jMenuTxt.setText("其他系统导入");
jMenuTmp2Mp.setText("其他功能");
jMenuTs.setText("时段方案");
jMenuItem1.setText("采集系统档案对应表");
jMenuSystem.setText("系统");
jMenuAbout.setText("关于");
jMenuExit.setText("退出");
jMenuHep.setText("帮助");
jButton_modi.setBorder(BorderFactory.createEtchedBorder());
jButton_modi.setText("修改记录");
jButton_addmp.setBorder(BorderFactory.createEtchedBorder());
jButton_addmp.setText("新增计量点");
jButton_addps.setBorder(BorderFactory.createEtchedBorder());
jButton_addps.setText("新增厂站");
jButton_addps.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton_addps_actionPerformed(e);
}
});
jButton_cancel.setBorder(BorderFactory.createEtchedBorder());
jButton_cancel.setText("取消");
jButton_save.setBorder(BorderFactory.createEtchedBorder());
jButton_save.setText("保存记录");
jButton_save.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton_save_actionPerformed(e);
}
});
jButton_del.setBorder(BorderFactory.createEtchedBorder());
jButton_del.setText("删除记录");
statusBar.setBorder(BorderFactory.createEtchedBorder());
statusBar.setText(" 就绪");
jTreeMp.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
jTreeMp_valueChanged(e);
}
});
jPanelMain.setLayout(gridLayout1);
jMenuArchive.add(jMenuMp);
jMenuArchive.add(jMenuPuao);
jMenuPl.add(jMenuFixre);
jMenuPl.add(jMenuICt);
jMenuPl.add(jMenuMeter);
jMenuPl.add(jMenuPlevent);
jMenuBar1.add(jMenuArchive);
jMenuBar1.add(jMenuPl);
jMenuBar1.add(jMenuTmp2Mp);
jMenuBar1.add(jMenuSystem);
this.setJMenuBar(jMenuBar1);
jMenuPlevent.add(jMenuEvent);
jMenuPlevent.add(jMenuPldata);
jMenuPlevent.add(jMenuTxt);
jMenuTmp2Mp.add(jMenuTs);
jMenuTmp2Mp.add(jMenuItem1);
jMenuSystem.add(jMenuHep);
jMenuSystem.add(jMenuAbout);
jMenuSystem.add(jMenuExit);
contentPane.add(jSplitPane1, new GridBagConstraints(0, 1, 7, 1, 1.0, 1.0
,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 1, 0, 1), 923, 413));
contentPane.add(jButton_addmp, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 0, 0, 0), 48, 0));
contentPane.add(jButton_addps, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 0, 0), 47, 0));
contentPane.add(jButton_modi, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 0, 0, 0), 45, 0));
contentPane.add(jButton_cancel, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 0, 0, 0), 57, 0));
contentPane.add(jButton_save, new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 0, 0, 0), 58, 0));
contentPane.add(jButton_del, new GridBagConstraints(5, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 0, 0, 0), 69, 0));
contentPane.add(statusBar, new GridBagConstraints(0, 2, 7, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 1, 8, 1), 990, 5));
jSplitPane1.add(jScrollPane1, JSplitPane.LEFT);
jSplitPane1.add(jPanelMain, JSplitPane.RIGHT);
jScrollPane1.getViewport().add(jTreeMp, null);
jSplitPane1.setDividerLocation(275);

//生成子节点
clsCreatemms createmms = new clsCreatemms(root);
//显示根节点的句柄
jTreeMp.setShowsRootHandles(true);
root.setnodeclass(0);
root.setname("计量系统");
root.setallowchild(0);

jTreeMp.expandRow(2); //展开变电站节点
jTreeMp.expandRow(1); //展开发电厂节点

}
/**File | Exit action performed*/
public void jMenuExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
/**Help | About action performed*/
public void jMenuAbout_actionPerformed(ActionEvent e) {
frmMms_AboutBox dlg = new frmMms_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.show();
}
/**Overridden so we can exit when window is closed*/
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuExit_actionPerformed(null);
}
}

void jTreeMp_valueChanged(TreeSelectionEvent e) {
clsNode node = (clsNode)jTreeMp.getLastSelectedPathComponent();
TreePath treepath = (TreePath)jTreeMp.getSelectionPath() ;
if (jTreeMp.isVisible(treepath)){
long iid = node.getid();
int iclass = node.getnodeclass();
String iname = node.getname();

switch(iclass){
case 0: //虚节点
jPanelMain.removeAll();
jPanelMain.repaint();
break;
case 1: //厂站

jPanelMain.removeAll();
jPanelMain.add(panel_dwps);
jPanelMain.revalidate();
panel_dwps.showdata(iid);
break;

case 2: //计量点
jPanelMain.removeAll();
jPanelMain.add(panel_dwmp);
jPanelMain.revalidate();
panel_dwmp.showdata(iid);

break;
}

}

}

//新增厂站
void jButton_addps_actionPerformed(ActionEvent e)
{
Panel_dwps panel_dwps = new Panel_dwps();
jPanelMain.removeAll();
jPanelMain.add(panel_dwps);
jPanelMain.revalidate();
panel_dwps.setColProtect(true);
panel_dwps.ps_add();

}

//保存记录(包括厂站和计量点) ---这就是主frame里面调用panel的save方法
void jButton_save_actionPerformed(ActionEvent e) {
panel_dwps.ps_save();
}


}


//这下面是那个panel的原代码
package mms;

import java.awt.*;
import com.borland.jbcl.layout.*;
import javax.swing.*;
import com.borland.dbswing.*;
import com.borland.dx.sql.dataset.*;
import java.sql.*;
import javax.swing.border.*;
import java.awt.event.*;


public class Panel_dwps extends JPanel {
JTabbedPane jTabbedPane_Ps = new JTabbedPane();
JPanel jPanel_psdata = new JPanel();
JTextField jTextPsname = new JTextField();
JLabel jLabelPscode = new JLabel();
JLabel jLabelPsclass = new JLabel();
JCBlist JCBPsclass = new JCBlist();
JLabel jLabelPsname = new JLabel();

connDB_oradrv conn =new connDB_oradrv();
GridLayout gridLayout1 = new GridLayout();
XYLayout xYLayout2 = new XYLayout();
XYLayout xYLayout3 = new XYLayout();
JLabel jLabelPssubclass = new JLabel();
JCBlist JCBPssubclass = new JCBlist();
JLabel jLabelPsmaxv = new JLabel();
JCBlist JCBPsmaxv = new JCBlist();
JLabel jLabelPstn = new JLabel();
JTextField jTextPstn = new JTextField();
JLabel jLabelPstc = new JLabel();
JTextField jTextPstc = new JTextField();
JLabel jLabelkW = new JLabel();
JLabel jLabelPsnote = new JLabel();
JTextField jTextPsnote = new JTextField();
TitledBorder titledBorder1;
JTextField jTextPscode = new JTextField();
JButton jButton1 = new JButton();//用专用引擎连Oracle
//connDB_jdbc2odbc conn =new connDB_jdbc2odbc(); //用Jdbc2Odbc连SqlServer

public Panel_dwps() {
try {
jbInit();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception {
titledBorder1 = new TitledBorder("");
this.setLayout(xYLayout2);
jPanel_psdata.setLayout(xYLayout3);
jTextPsname.setEditable(false);
jLabelPscode.setToolTipText("");
jLabelPscode.setText("厂站代号");
jLabelPsclass.setText("厂站类别");
jLabelPsname.setText("厂站名称");
xYLayout2.setWidth(751);
xYLayout2.setHeight(649);
jLabelPssubclass.setText("厂站子类");
jLabelPsmaxv.setText("电压等级");
jLabelPstn.setText("变压器/发电机总台数");
jTextPstn.setEditable(false);
jLabelPstc.setText("变压器/发电机总容量");
jTextPstc.setEditable(false);
jLabelkW.setText("kW");
jLabelPsnote.setText("厂站信息说明");
jTextPsnote.setEditable(false);
jTextPscode.setEditable(false);
jTextPscode.setText("hello");

JCBPsclass.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
JCBPsclass_actionPerformed(e);
}
});
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton1_actionPerformed(e);
}
});
this.add(jTabbedPane_Ps, new XYConstraints(2, 3, 742, 642));
jTabbedPane_Ps.add(jPanel_psdata, "厂站档案");
jPanel_psdata.add(jLabelPsnote, new XYConstraints(415, 371, 74, 28));
jPanel_psdata.add(jLabelPscode, new XYConstraints(69, 95, 51, 20));
jPanel_psdata.add(jLabelPsname, new XYConstraints(69, 175, 51, 21));
jPanel_psdata.add(jTextPsname, new XYConstraints(132, 174, 140, 23));
jPanel_psdata.add(jLabelPsclass, new XYConstraints(69, 267, 51, 28));
jPanel_psdata.add(JCBPsclass, new XYConstraints(132, 272, 140, 21));
jPanel_psdata.add(jLabelPssubclass, new XYConstraints(69, 371, 51, 26));
jPanel_psdata.add(JCBPssubclass, new XYConstraints(132, 371, 140, 21));
jPanel_psdata.add(jLabelPstc, new XYConstraints(374, 267, 115, 28));
jPanel_psdata.add(jLabelPstn, new XYConstraints(374, 169, 115, 28));
jPanel_psdata.add(jLabelPsmaxv, new XYConstraints(438, 88, 51, 26));
jPanel_psdata.add(JCBPsmaxv, new XYConstraints(505, 89, 140, 21));
jPanel_psdata.add(jTextPstn, new XYConstraints(505, 172, 140, -1));
jPanel_psdata.add(jTextPstc, new XYConstraints(505, 272, 140, -1));
jPanel_psdata.add(jLabelkW, new XYConstraints(649, 272, 21, 26));
jPanel_psdata.add(jTextPsnote, new XYConstraints(505, 371, 140, -1));
jPanel_psdata.add(jTextPscode, new XYConstraints(133, 94, 140, 23));
jPanel_psdata.add(jButton1, new XYConstraints(216, 37, 86, 16));
}

//显示厂站数据(FreeForm)
public void showdata(long ps_no)
{
String stemp = new String();
long ltemp;
ResultSet rsshow = null;
rsshow = conn.executeQuery("SELECT * from power_station where ps_no ='"+ps_no+"'");
try
{
while(rsshow.next())
{
stemp = rsshow.getString("ps_no");
//jTextPsno.setText(stemp);
stemp = rsshow.getString("ps_name");
jTextPsname.setText(stemp);
stemp = rsshow.getString("ps_code");
jTextPscode.setText(stemp);
}
rsshow.close();
}

catch(Exception ex) {
ex.printStackTrace();
}
}

//设置厂站数据窗口的列的保护属性
public void setColProtect(boolean lb)
{
jTextPscode.setEditable(lb);
jTextPsname.setEditable(lb);
jTextPstn.setEditable(lb);
jTextPstc.setEditable(lb);
jTextPsnote.setEditable(lb);
}

//新增厂站时候对ps_class,ps_subclass,ps_maxv这三个下拉式列表框赋值
public void ps_add()
{
//厂站类别
JCBPsclass.addItem("发电厂");
JCBPsclass.additemIntvalue(1);
JCBPsclass.addItem("变电站");
JCBPsclass.additemIntvalue(2);

ResultSet rscb = null;
//厂站子类
rscb = conn.executeQuery("SELECT dict_name,dict_no FROM enu_dict where dict_code = 'PS_CLASS'");
try {
while (rscb.next()){
JCBPssubclass.addItem(rscb.getString("dict_name").trim());
JCBPssubclass.additemIntvalue(rscb.getInt("dict_no"));

}
rscb.close();
}
catch(Exception ex) {
ex.printStackTrace();
}

//电压等级
rscb = conn.executeQuery("SELECT dict_name,dict_no FROM enu_dict where dict_code = 'VLEVEL'");
try {
while (rscb.next()){
JCBPsmaxv.addItem(rscb.getString("dict_name").trim());
JCBPsmaxv.additemIntvalue(rscb.getInt("dict_no"));
}
rscb.close();
}
catch(Exception ex) {
ex.printStackTrace();
}


}

//厂站类别选择改变的时候相应的更新厂站子类下拉式列表框
void JCBPsclass_actionPerformed(ActionEvent e) {
int ips_class;
ResultSet rscb = null;
if (JCBPsclass.getSelectedIndex() != 0){
ips_class = JCBPsclass.getitemIntvalue(JCBPsclass.getSelectedIndex());

JCBPssubclass.removeAllItems();
switch(ips_class){
//发电厂
case 1:
rscb = conn.executeQuery("SELECT dict_name,dict_no FROM enu_dict where dict_code = 'PS_CLASS'");
try {
while (rscb.next()){
JCBPssubclass.addItem(rscb.getString("dict_name").trim());
JCBPssubclass.additemIntvalue(rscb.getInt("dict_no"));

}
rscb.close();
}
catch(Exception ex) {
ex.printStackTrace();
}
break;
//变电站
case 2:
rscb = conn.executeQuery("SELECT dict_name,dict_no FROM enu_dict where dict_code = 'TR_CLASS'");
try {
while (rscb.next()){
JCBPssubclass.addItem(rscb.getString("dict_name").trim());
JCBPssubclass.additemIntvalue(rscb.getInt("dict_no"));

}
rscb.close();
}
catch(Exception ex) {
ex.printStackTrace();
}
break;

}
}

}


//保存厂站记录
public void ps_save()
{
String ps_code = new String();
String ps_name = new String();
long ps_no;
double ps_tc;
int ps_class,ps_subclass,ps_maxv,ps_tn;
String ps_note = new String();

ResultSet rsps = null;
//自动取得厂站编号
rsps = conn.executeQuery("SELECT max(ps_no) as ps_maxno FROM power_station ");
try {
while (rsps.next()){
//if里面要用getString,因为null的话无法被getInt得到
if (rsps.getString("ps_maxno") != null)
ps_no = rsps.getInt("ps_maxno") + 1;
else
ps_no = 100;
}
rsps.close();
}
catch(Exception ex) {
ex.printStackTrace();
}

//取得用户录入的数据:这里的getText()取到的值为空
ps_name = jTextPsname.getText();
ps_code = jTextPscode.getText();
ps_tc = Double.valueOf(jTextPstc.getText()).doubleValue();
ps_note = jTextPsnote.getText();
ps_tn = Integer.parseInt(jTextPstn.getText().trim());
ps_class = JCBPsclass.getitemIntvalue(JCBPsclass.getSelectedIndex());
ps_subclass = JCBPssubclass.getitemIntvalue(JCBPssubclass.getSelectedIndex());
ps_maxv = JCBPsmaxv.getitemIntvalue(JCBPsmaxv.getSelectedIndex());
}

//里面的button的getText成功
void jButton1_actionPerformed(ActionEvent e) {
System.out.println(jTextPscode.getText());
System.out.println(jTextPsname.getText());
}

}


hexiaofeng 2001-08-24
  • 打赏
  • 举报
回复
代码?

62,629

社区成员

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

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