有两种方式:一、做界面的时候就把这两个控件都放上去,并默认显示一个,把另一个的visible属性设置为FALSE,在Button的相关事件的响应代码中把Button的visible设为FALSE,把文本框的设为TRUE二、只是在初始做界面的时候只是放一个Button,在Button的相关事件(选择事件,鼠标的单击事件等)中添加代码,实例化一个文本框,然后将Button的bound赋给文本框,然后将Button的visible设为FALSE,或者干脆将他dispose了
我这写的不错啊,怎么审核部通过唻?奇怪
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; class MyPanel extends JPanel implements ActionListener{ /** * 定义面板的宽和高 */ private int width=300; private int height=300; /** * 两组件 */ private JButton button; private JTextField textField; /** * 构造方法 */ public MyPanel(){ this.setSize(width, height); this.setLayout(null); this.setVisible(true); this.button=new JButton("点击我会变成一个文本框!"); this.button.setBounds(60, 120, 180, 30); this.button.addActionListener(this); this.add(button); this.textField=new JTextField(); this.textField.setBounds(60, 120, 180, 30); this.add(textField); this.textField.setVisible(false); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==button){ this.textField.setVisible(true); this.button.setVisible(false); } } } public class AAA extends JFrame{ private MyPanel panel; public AAA(){ this.panel=new MyPanel(); this.add(panel); this.setSize(300, 300); this.setVisible(true); } public static void main(String[] args) { new AAA(); } } 看看是不是要的这种效果啊
用什么写?在后台还是页面里面写?麻烦表述清楚
用JS做吧,可能容易点
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class t extends JFrame {
JButton b = new JButton("隐藏");
JTextField t = new JTextField("123123");
public t() {
add(b, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
b.setVisible(false);
showText();
}
});
setBounds(100, 100, 200, 100);
setVisible(true);
}
public void showText() {
add(t, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new t();
}
}