首页 新闻 会员 周边

Swing 复选框下自增文本域,如何进行定位删除

0
悬赏园豆:40 [待解决问题]

Checkbox getRandomString = new Checkbox("字符串");
getRandomString.setBounds(x1, y, 101, 23);
contentPane.add(getRandomString);

etRandomString.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
// 复选框监听
//java.awt.Point mousePoint = MouseInfo.getPointerInfo().getLocation();
String item = e.getItem().toString();
int stateChange =e.getStateChange();
if (stateChange == ItemEvent.SELECTED){
textField = new TextField();
textField.setBounds(460,a,60, 23);
contentPane.add(textField);

}else if(stateChange == ItemEvent.DESELECTED){
//删除

contentPane.remove(textField);

}

}});

现在的脚本是 只能删除最新创建的文本域, 如何进行定位删除?

Mr.Tester的主页 Mr.Tester | 初学一级 | 园豆:164
提问于:2017-08-28 13:40
< >
分享
所有回答(1)
0
private void addMyPanel(String label)
    {
        Panel panel =new Panel(new GridLayout(0,1));
        Checkbox getRandomString = new Checkbox(label);
        panel.add(getRandomString ) ;
        TextField textField = new TextField(); 
        getRandomString.addItemListener(e -> {
            int stateChange = e.getStateChange();
            if (stateChange == ItemEvent.SELECTED)
            {
                panel.add(textField ) ; 
            } else if (stateChange == ItemEvent.DESELECTED)
            {
                // 删除
                panel.remove(textField); 
            }
            revalidate();
        });  
        add(panel);
    }
TCG2008 | 园豆:1150 (小虾三级) | 2017-08-28 17:40

能否在我这个代码上面直接进行修改?

第一次写SWing 还不太理解 

支持(0) 反对(0) Mr.Tester | 园豆:164 (初学一级) | 2017-08-28 17:48

或者 留个Q 我直接代码给你?

支持(0) 反对(0) Mr.Tester | 园豆:164 (初学一级) | 2017-08-28 17:49

大神 我 增加悬赏,麻烦你了

支持(0) 反对(0) Mr.Tester | 园豆:164 (初学一级) | 2017-08-28 17:56

private TextField textField = null;

public void parseMap(Map map){

int x =550;
int x1 =460;
int x2 =350;
int x3 =240;

int y =90;

// final TextField textField = new TextField();
//获取鼠标位置
// final java.awt.Point mousePoint = MouseInfo.getPointerInfo().getLocation();
// System.out.println("鼠标点击位置"+);
//

Set entrySet = map.entrySet();
Iterator<Entry<String, Object>> it = entrySet.iterator();
//最外层提取
while(it.hasNext()){
Entry<String, Object> e = it.next();
//内层提取
if(e.getValue() instanceof List){
List list = (List)e.getValue();

for (int i = 0; i < list.size(); i++) {
//如何还有,循环提取
parseMap((Map)list.get(i));
}

}
textkeys=e.getKey();
//解析框
int nub = 4 ;
for (int i = 0; i < nub; i++) {


JTextField textFieldy = new JTextField();
textFieldy.setBounds(10,y, 85, 20);
contentPane.add(textFieldy);
textFieldy.setText(textkeys);

//复选框
Checkbox Number = new Checkbox("正整数");
Number.setBounds(x, y, 101, 23);
contentPane.add(Number);

Checkbox getRandomString = new Checkbox("字符串");
getRandomString.setBounds(x1, y, 101, 23);
contentPane.add(getRandomString);

Checkbox Spechars = new Checkbox("特殊字符");
Spechars.setBounds(x2, y, 101, 23);
contentPane.add(Spechars);

Checkbox Chinse = new Checkbox("汉字");
Chinse.setBounds(x3, y, 101, 23);
contentPane.add(Chinse);

// final int a = y+25;
// final int v=y;
// getRandomString.addItemListener(new ItemListener() {
// public void itemStateChanged(ItemEvent e ) {
// // 复选框监听
// //java.awt.Point mousePoint = MouseInfo.getPointerInfo().getLocation();
// String item = e.getItem().toString();
// int stateChange =e.getStateChange();
// System.out.println(e.getStateChange());
// if (stateChange == ItemEvent.SELECTED){
// textField = new TextField();
// textField.setBounds(460,a,60, 23);
// contentPane.add(textField);
// textField.setText("测试");
//// textField.setName("123");
//
//// System.out.println("此次事件由选中“" + item + "”触发!");
// }else if(stateChange == ItemEvent.DESELECTED){
// //删除
// contentPane.remove(textField);
// System.out.println(textField.getName()+" :++");
// //contentPane.repaint();
// System.out.println("此次事件由取消选中“" + item + "”触发!");
//
// }
// }});




y=y + 45;
}
}
}

支持(0) 反对(0) Mr.Tester | 园豆:164 (初学一级) | 2017-08-28 18:03

@Mr.Tester: 

代码不贴完整,不知道你想干嘛

支持(0) 反对(0) TCG2008 | 园豆:1150 (小虾三级) | 2017-08-31 10:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册