java jtextfield 不显示_java JTextField为什么不能即使显示

这里有两个.JAVA文件。importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjavax.swi...

这里有两个.JAVA文件。

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import javax.swing.*;

import java.awt.*;

import java.io.IOException;

public class CalWin extends JFrame{

final int WIN_W=225,WIN_H=320;

JTextField text1,text2,text3;

JPanel panelCommon,panelSuper;

Cal cal;

ButtonGroup bg;

public CalWin(){

cal=new Cal(this);

cSuper();

text2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

cal.getResult();

}

});

this.add(panelSuper);

double width = Toolkit.getDefaultToolkit().getScreenSize().width;

double height =Toolkit.getDefaultToolkit().getScreenSize().height;

setBounds((int)(width-WIN_W)/2,(int)(height-WIN_H)/2,WIN_W,WIN_H);

validate();

setResizable(false);

setVisible(true);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

}

public void cSuper(){

panelSuper=new JPanel();

panelSuper.setLayout(null);

text2=new JTextField(20);

text2.setBounds(5, 10,200,20);

text2.setHorizontalAlignment(JTextField.RIGHT);

text3=new JTextField(10);

text3.setEditable(false);

text3.setBackground(new Color(255, 255, 255));

text3.setHorizontalAlignment(JTextField.RIGHT);

JLabel label=new JLabel("=");

label.setBounds(5,40,20,20);

text3.setBounds(15, 40,180,20);

JLabel label2=new JLabel("输入式子如:-12+(1+2)*2^2-5/2");

label2.setBounds(4,70,200,20);

panelSuper.add(text2);

panelSuper.add(label);

panelSuper.add(text3);

panelSuper.add(label2);

}

public static void main(String[] args) {

new CalWin();

}

public void f(){

this.text3.setText("输入有误");

this.panelSuper.validate();

this.text3.repaint();

this.text3.validate();

this.panelSuper.repaint();

this.panelSuper.validate();

this.repaint();

this.validate();

System.out.println("执行啦");

}

}

还有一个

import java.util.ArrayList;

import java.util.HashMap;

public class Cal {

CalWin calwin;

public Cal(CalWin cw) {

calwin=cw;

}

public void getResult(){

try{

float f=Float.parseFloat(calwin.text2.getText());

}

catch(Exception e){

calwin.f();

try{

Thread.sleep(3000);

}

catch(Exception ee){}

move();

}

}

public void move(){

int x=calwin.getX();

int y=calwin.getY();

int n=8;

while(n>0){

if(n%2==0)

calwin.setLocation(x+5, y);

else

calwin.setLocation(x-5, y);

n--;

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

运行之后:输入a回车。为什么是先震动,然后再显示:输入错误。明明是先执行显示的。麻烦 给出解决方案

输出错误提示 是在sleep前面运行的。大家看看清楚先好不。。

还有就是f()函数里面有System.out.println("执行啦");

这个信息。这个输出语句也的的确确的执行了。但是它前面的this.text3.setText("输入有误");

却没有显示出效果。

this.panelSuper.validate();

this.text3.repaint();

this.text3.validate();

this.panelSuper.repaint();

this.panelSuper.validate();

this.repaint();

this.validate();

我用了这么多函数 都没有把它刷新出来

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值