java swing单击按钮隐藏显示JtextField的问题?我只能隐藏JTextfiled,但不能显示出来?急各位帮忙给点源码。
解决方案 »
- 匿名内部类问题求助
- Scanner类中分隔符的使用
- 高手几分钟就解决的问题(关于环境变量的)
- ImageInputStream 問題
- 代码检查工具
- 有关comparable,谢谢!!!!
- 刚接触JAVA,想问一下applet,servlet,javabean,struts它们都有什么区别呀?
- 利用Socket在局域网实现服务器向客户端发送文件夹
- 那位有关于在浏览器中实现套打的好的方法???
- 使用iText组件不能在表格中显示中文?那位大侠遇到过类似问题?怎么解决?
- java swing JCombox怎样实现可编辑的状态!
- *************求 myeclipseide8 m2 的下载地址*************
显示jtf.setVisible(true);
JtextField.setVisible(true)不就行了吗~~
boolean visible = false;
public void actionPerformed(ActionEvent e){
jtf.setVisible(visible);
visible = visible ? false : true;
}
import java.awt.BorderLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class DisplayText extends JFrame{
JTextField text = new JTextField();
JButton click = new JButton("Click");
public DisplayText(){
super();
this.setSize(200, 200);
text.setSize(100, 100);
this.add(text);
this.add(click,BorderLayout.SOUTH);
click.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent e) {
text.setVisible(!text.isVisible());
}
});
this.setVisible(true);
}
public static void main(String[] args){
new DisplayText();
}
}
默认是隐藏的,单击那个下拉的才显示,但为什么那样显示不了,各位帮帮忙!public class StackUI extends JFrame{
JTextField txtfield = new JTextField("afsd");
ComboBoxModel cbxModel = new DefaultComboBoxModel();
JComboBox cbx = new JComboBox(cbxModel);
public StackUI(){
Container contentPane = this.getContentPane();
txtfield = new JTextField();
cbx.addItem("1");
cbx.addItem("2");
cbx.setPreferredSize(new Dimension(80,25));
txtfield.setPreferredSize(new Dimension(100,25));
txtfield.setVisible(false);
contentPane.add(cbx);
contentPane.add(txtfield);
initListener();
this.setLayout(new FlowLayout());
setSize(400,400);
setVisible(true);
}
public void initListener(){
cbx.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
if(!txtfield.isVisible()){
txtfield.setVisible(true);
}
//System.out.println("afsafasdf");
} public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
} public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
} public void mouseReleased(MouseEvent e) {
}
});
cbx.addFocusListener(new FocusListener(){
public void focusGained(FocusEvent e) {
txtfield.setVisible(true);
}
public void focusLost(FocusEvent e) {
}
});
txtfield.addKeyListener(new KeyListener(){ public void keyPressed(KeyEvent e) {
if(e.getKeyChar()==e.VK_ENTER){
String txt = txtfield.getText();
boolean flag = false;
if(!txt.equals("")){
for(int i=0;i<cbxModel.getSize();i++){
if(cbxModel.getElementAt(i).equals(txt)){
flag = true;
cbxModel.setSelectedItem(txt);
break;
}
}
if(!flag){
cbx.addItem(txt);
cbxModel.setSelectedItem(txt);
}
}
}
} public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
});
}
public static void main(String args[]){
new StackUI();
}
}
public class StackUI extends JFrame {
JTextField txtfield = new JTextField("afsd");
ComboBoxModel cbxModel = new DefaultComboBoxModel();
JComboBox cbx = new JComboBox(cbxModel);
static boolean isVisible = false; //======== 1 public StackUI() {
Container contentPane = this.getContentPane();
// txtfield = new JTextField(); //======== 2
cbx.addItem("1");
cbx.addItem("2");
cbx.setPreferredSize(new Dimension(80, 25));
txtfield.setPreferredSize(new Dimension(100, 25));
contentPane.add(cbx);
contentPane.add(txtfield);
txtfield.setVisible(isVisible); //======== 3
initListener();
this.setLayout(new FlowLayout());
setSize(400, 400);
setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public void initListener() {
//=============== 4 ===================
cbx.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent e) {
isVisible = isVisible ? false : true;
txtfield.setVisible(isVisible);
StackUI.this.validate(); // ======= 重点 ======
}
});
/**
cbx.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
if (!txtfield.isVisible()) {
txtfield.setVisible(true);
}
System.out.println("afsafasdf");
} public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
} public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub } public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
} public void mouseReleased(MouseEvent e) { }
});*/
cbx.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
txtfield.setVisible(true);
} public void focusLost(FocusEvent e) { } }); txtfield.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == e.VK_ENTER) {
String txt = txtfield.getText();
boolean flag = false;
if (!txt.equals("")) {
for (int i = 0; i < cbxModel.getSize(); i++) {
if (cbxModel.getElementAt(i).equals(txt)) {
flag = true;
cbxModel.setSelectedItem(txt);
break;
}
}
if (!flag) {
cbx.addItem(txt);
cbxModel.setSelectedItem(txt);
}
}
}
} public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } });
} public static void main(String args[]) {
new StackUI();
}
}
主要问题不是setVisualable()的问题 不是显示不了 而是没地方显示this.setLayout(new FlowLayout());//这句话吧布局设为流布局 流布局管理器默认的中间对齐与你的
//setPreferredSize()大小 和 JFrame大小 有矛盾
//JTextField被挡住了//如果你点击窗口最大化就会发现出来了把this.setLayout(new FlowLayout());
改成this.setLayout(new FlowLayout(FlowLayout.LEFT));//设置为左对齐就好le你注册的监听器也很特别
JComBox一般是注册
addItemLinstener 监听Item改变
addActionListener 监听被点击
public void actionPerformed(ActionEvent e){
jtf.setVisible(!jtf.isVisible());
}