因为你在主线程中调用了Threed.sleep(1000) 那么主线程就一直在这里暂停.没机会显示数字.
创新互联公司是专业的赤峰网站建设公司,赤峰接单;提供成都网站建设、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行赤峰网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
然后当主线程恢复的时候, 如果你设置shuzi.setVisible(true);那么就直接消失了
修改参考,
Thread t = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
shuzi.setVisible(false);//设置不可见
} catch (Exception e1) {
return;
}
}
});
t.start();//启动
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class aa implements ActionListener {
JButton jb;
public aa(JButton jb) {//构造器,把JButton传递进来,
this.jb = jb;
}
public void actionPerformed(ActionEvent e) {
jb.setVisible(false);//设置jbutton不可见
}
}
public class J1 extends JFrame{
JButton j1 = new JButton("Game1");
JButton j2 = new JButton("Game2");
J1(){
setTitle("Game");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(j1);
c.add(j2);
j1.addActionListener(new aa(j1));//把j1这个按钮传递进过去
j2.addActionListener(new aa(j2));//把j2这个按钮传递进过去
setSize(400,400);
setVisible(true);
}
public static void main(String[] args) {
new J1();
}
}
效果图
你好,在构造方法FrameOut()中调用setLayout()方法加入一种控件布局形式,例如加入setLayout(new FlowLayout());即可以流布局的形式显示控件。
完整代码如下:
import java.awt.*;
import java.awt.event.*;
public class ApplicationInOut{
public static void main(String args[ ]){
new FrameInOut();
}
}
class FrameInOut extends Frame implements ActionListener{
Label prompt;
TextField input,output;
FrameInOut( ){
super("图形界面的Java Application程序");
prompt=new Label("Java 是面向对象的语言吗?");
input=new TextField(6);
output=new TextField(20);
add(prompt);
add(input);
add(output);
input.addActionListener(this);
setLayout(new FlowLayout()); //此处即为添加布局形式
setSize(800,600);
setVisible(true); //show( );
}
public void actionPerformed(ActionEvent e){
output.setText(input.getText()+"OK!");
}
}
其实你也不用严格的按着几步来做:
1,导入包也就是
import java.awt.*;
import java.awt.event.*;
或者import javax.swing.*;
import javax.swing.event.*;
2,构造,估计就是构造方法,就是初始化你的组件,
3,不知道
4,应该是给组件加监视器
5,实现接口的方法,也就是当你按了按钮或选择了菜单项会发生的动作
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login {
private JFrame frame = new JFrame("登录");
private Container c = frame.getContentPane();
private JTextField username = new JTextField();
private JPasswordField password = new JPasswordField();
private JButton ok = new JButton("确定");
private JButton cancel = new JButton("取消");
public Login(){
frame.setSize(300,200);
c.setLayout(new BorderLayout());
initFrame();
frame.setVisible(true);
}
private void initFrame() {
//顶部
JPanel titlePanel = new JPanel();
titlePanel.setLayout(new FlowLayout());
titlePanel.add(new JLabel("系统管理员登录"));
c.add(titlePanel,"North");
//中部表单
JPanel fieldPanel = new JPanel();
fieldPanel.setLayout(null);
JLabel l1 = new JLabel("用户名:");
l1.setBounds(50, 20, 50, 20);
JLabel l2 = new JLabel("密 码:");
l2.setBounds(50, 60, 50, 20);
fieldPanel.add(l1);
fieldPanel.add(l2);
username.setBounds(110,20,120,20);
password.setBounds(110,60,120,20);
fieldPanel.add(username);
fieldPanel.add(password);
c.add(fieldPanel,"Center");
//底部按钮
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.add(ok);
buttonPanel.add(cancel);
c.add(buttonPanel,"South");
}
public static void main(String[] args){
new Login();
}
}
/**
* 这是一个可运行的程序,直接把代码复制到eclipse中即可. 还有问题留言。
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class FrameDemo extends JFrame{
//定义需要的组件.
private JPanel panel;//面板组件》
private JTextField tf_input;//供用户进行输入的文本框》
private JLabel lb_num;//统计字符个数.
private JButton totalButton;//统计字符个数按钮.
/**
* 无参构造方法.
* 作用: 初始化组件.
*/
public FrameDemo() {
//初始化组件.
panel = new JPanel();
tf_input = new JTextField(18);
lb_num = new JLabel();
totalButton = new JButton("统计");
//将组件添加到panel中.
panel.add(tf_input);
panel.add(lb_num);
panel.add(totalButton);
//设置窗口属性》
add(panel);//添加panel
setVisible(true);//设置可见》
setSize(300,300);//设置大小。
setLocationRelativeTo(null);//居中.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭动作.
//给按钮添加点击监听。
totalButton.addActionListener(new ActionListener() {//匿名内部类.
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String input = tf_input.getText();//获取用户输入.
int num = input.length();//计算长度》
String numStr = num+"";//将int ---- String,因为JLabel中只能接收String类型的》
lb_num.setText(numStr);//设置到JLabel中进行显示》
}
});
}
/**
* 启动程序
* @param args
*/
public static void main(String[] args) {
new FrameDemo();
}
}