13.2 运用Swing

来源:互联网 发布:centos ifconfig 编辑:程序博客网 时间:2024/06/14 02:44

操作Swing组件


前面介绍了布局管理器,本章节关注常用的组件:text field,可滚动的text area,check box以及list


构造函数


JTextField field = new JtextField(20);  //20代表字宽,而不是像素

JTextField field = new JtextField("your name");


使用方法


1.取得文本内容


System.out.printIn(field.getTeXT());


2.设定内容


field.setText("whatever")

field.setText("") //清空字段


3.取得用户输入完毕按下enter键或return键的事件


field.addActionListener(myActionListener);

//也可通过注册按键事件知道用户某个按键操作


4.选取文本字段的内容


field.selectAll();


5.把GUI焦点拉回到文本字段以便用户进行输入操作


field.requestFocus();


Text Area


该组件可以有超过一行以上的文字,只需少许设定即可制作,但无滚动功能,若需滚动,则要将其粘在ScrollPane上。

ScrollPane用于处理滚动的对象,也会考虑文本区域的滚动需求。


构造函数


JTextArea text = new JTextArea(10,20);//代表10行高,20字宽


使用方法


1.只有垂直的滚动条


JScrollPane scroller = new JScrollPane(text);

//将text值赋值给新创建的JScrollPane,即组件放在JScrollPane上


text.setLineWarp(true);  //启动自动换行


scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

//指定只使用垂直滚动条

panel.add(scroller);


2.替换文字内容


text.setText("show time");


3.加入文字


text.append("go go go");


4.选取内容


text.selectAll();


5.把GUI焦点拉回到文本字段以便用户进行输入操作


text.requestFocus();


JCheckBox


构造函数

JCheckBox check = new JCheckBox("go go");


使用方法

1.监听item的事件(被选取或非选取)


check.addItemListener(this);


2.处理事件


public void itemStateChanged(ItemEvent ev){

  String onOroff = "off";

  if(check.isSelected()) onOrOff = "on";

  System.out.printIn("Check box is" + OnOrOff)

}


3.程序控制选取或不选取

check.setSelected(true);

check.setSelected(false);


JList


构造函数


构造函数参数可以是任意类型的数组,不一定为string,但用string表示项目


String [] listEntries = {"a","b","c"};

list = new JList(listEntries)


使用方法


1.显示垂直的滚动条


JScrollPane scroller = new JScrollPane(list);

//将list值赋值给新建的JScrollPane,即组件放在JScrollPane上

scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

//指定只使用垂直滚动条

panel.add(scroller);


2.设定显示的行数


list.setVisibleRowCount(4);  //可滚动,但只可见四行


3.限制用户只能选取一个项目


list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


4.注册选择事件


list.addListSelectionListener(this);


5.处理事件(判断选了哪个项目)


public void valueChanged(ListSelectionEvent lse){

    if(!lse.getValueIsAdjusting()){ //若没有该if测试,则得到两次事件

      String selection = (String)list.getSelectedValue();

      //返回一个Object,强制转化为String类型

      System.put.printIn(selection);

    }

}




书海拾荒

布局管理器能防止组件互相覆盖


原创粉丝点击