[求助]JTextfield 取值问题!
我用K取JTextfield中的值 可怎么就是得不到在JTextfield输入的值
K始终=0 (原来JTextfield的初值)请教各位
代码下面 大部分是界面代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class GUANJI1 implements Runnable,ActionListener
{
JFrame jf;
JLabel jl1,jl2,jl3,jl4,jl5;
JPanel jp1,jp2;
JTextField jt1,jt2,jt3;
JButton jb1,jb2,jb3;
int k=0;
public GUANJI1()
{jf=new JFrame("定时关机");
jf.setResizable(false);
jf.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{System.exit(0);}
});
jl1=new JLabel("当前时间:");
jl1.setHorizontalAlignment(SwingConstants.CENTER);
jl1.setText("当前时间:"+gettime());
jl2=new JLabel("等待:");
jl3=new JLabel("时");
jl4=new JLabel("分");
jl5=new JLabel("秒执行");
jt1=new JTextField();
jt1.setHorizontalAlignment(SwingConstants.RIGHT);
jt1.setText("0");
jt2=new JTextField("0");
jt2.setHorizontalAlignment(SwingConstants.RIGHT);
jt3=new JTextField("0");
jt3.setHorizontalAlignment(SwingConstants.RIGHT);
jp1=new JPanel();
jp1.setLayout(new GridLayout(1,7));
jp1.add(jl2);
jp1.add(jt1);
jp1.add(jl3);
jp1.add(jt2);
jp1.add(jl4);
jp1.add(jt3);
jp1.add(jl5);
jb1=new JButton("关 闭");
jb1.setForeground(Color.red);
jb1.setFont(new Font("dialog",0,14));
jb1.addActionListener(this);
jb2=new JButton("重 启");
jb2.setForeground(Color.red);
jb2.setFont(new Font("dialog",0,14));
jb2.addActionListener(this);
jb3=new JButton("注 销");
jb3.setForeground(Color.red);
jb3.addActionListener(this);
jb3.setFont(new Font("dialog",0,14));
jp2=new JPanel();
jp2.setLayout(new FlowLayout());
jp2.add(jb1);
jp2.add(jb2);
jp2.add(jb3);
jf.add(jl1,BorderLayout.NORTH);
jf.add(jp1,BorderLayout.CENTER);
jf.add(jp2,BorderLayout.SOUTH);
}
public void setv()
{
jf.setVisible(true);
jf.pack();
jf.setLocation(400, 270);
}
static GUANJI1 G=null;
public static void main(String ds[])
{
G=new GUANJI1();
G.setv();
}
public void actionPerformed(ActionEvent e)
{GUANJI2 g=new GUANJI2();
Thread t=new Thread(new GUANJI1());
t.start();
try{
t.join();}
catch(Exception ee)
{ee.printStackTrace();}
if(e.getSource()==jb1)
{
//g.shutdown();
System.out.println("关闭");
}
else if(e.getSource()==jb2)
{
//g.restart();
System.out.println("重启");
}
else
{
//g.zhuxiao();
System.out.println("注销");
}
}
public void run()
{
k=Integer.parseInt(jt1.getText().trim())*3600
+Integer.parseInt(jt2.getText().trim())*60
+Integer.parseInt(jt3.getText().trim());
System.out.println(jt3.getText());
//k=6;
System.out.println(k);
while(true)
{
if(k==0)
break;
try{
k--;
Thread.sleep(1000);
jl1.setText("当前时间:"+gettime());
}
catch(Exception e)
{e.printStackTrace();}
}System.out.print(k);
}
public String gettime()
{
String s;
Calendar c=Calendar.getInstance();
s=Integer.toString(c.get(Calendar.HOUR_OF_DAY))+":"
+Integer.toString(c.get(Calendar.MINUTE))+":"+
Integer.toString(c.get(Calendar.SECOND));
return s;
}
}
搜索更多相关的解决方案:
JTextfield
----------------解决方案--------------------------------------------------------
GUANJI2文件呢?
----------------解决方案--------------------------------------------------------
那个文件无所谓拉 没关系的!
如果要的话 可以发出来
public class GUANJI2 {
Runtime rt=Runtime.getRuntime();
public void shutdown()
{
try{rt.exec("shutdown.exe -s -t 0");
}
catch(Exception e)
{e.printStackTrace();}
}
public void restart()
{
try{
rt.exec("shutdown.exe -r -t 0");
}
catch(Exception e)
{e.printStackTrace();}
}
public void zhuxiao()
{
try{rt.exec("shutdown.exe -l");}
catch(Exception e)
{e.printStackTrace();}
}
}
[此贴子已经被作者于2007-8-19 22:59:47编辑过]
----------------解决方案--------------------------------------------------------
这个我不会。
----------------解决方案--------------------------------------------------------
jt1.setText("0");
这里设置了0
后边没有改变jt1里边Text的值
就直接k=Integer.parseInt(jt1.getText().trim())*3600
这样怎么取都是0喔...
----------------解决方案--------------------------------------------------------
你设置它的默认值为0,而你在后面又没有改变,所以当然为0了
----------------解决方案--------------------------------------------------------
以下是引用Digitalpro在2007-8-22 0:39:18的发言:
这里设置了0
后边没有改变jt1里边Text的值
就直接k=Integer.parseInt(jt1.getText().trim())*3600
这样怎么取都是0喔...
可我在JTextfield里输入了 数字 为什么我输入的数字得不到
我就是这个饿问题!?
按照理论的话 应该可以得到我输入到JTextfield里的值 原来jt1.setText("0");应该被覆盖拉
----------------解决方案--------------------------------------------------------
以下是引用skylence在2007-8-22 15:58:39的发言:
可我在JTextfield里输入了 数字 为什么我输入的数字得不到
我就是这个饿问题!?
按照理论的话 应该可以得到我输入到JTextfield里的值 原来jt1.setText("0");应该被覆盖拉
jt1.getText()得写到事件里边才能得到值...
----------------解决方案--------------------------------------------------------
我试过拉 在事件里面是一样的!还是没自己输入的值!
----------------解决方案--------------------------------------------------------
得,我也一头雾水,还要慢慢看才行的....
----------------解决方案--------------------------------------------------------