Head First Java学习笔记(13):Swing

Swing组件

1.组件是比widget更为正确的术语,从技术上来说,widget是个Swing的组件,几乎所有的GUI组件都来自于javax.swing.JComponent。
2.组件是可以嵌套的,在swing中,几乎所有组件都能够安置其他的组件。一般来说,可以将用户交互组件放在框架和背景组件上。
3.JPanel通常用作背景。

布局管理器

1.布局管理器是个与特定组件关联的Java对象,它大多数是背景组件。布局管理器,负责组件的大小和位置。
2.布局管理器用来控制所关联组件上携带的其他组件。
3.如果面板带有5项组件,就算它们都有各自的布局管理器,它们的大小与位置还是由面板的布局管理器来管理。

布局情境举例: 1.制作面板并加上三个按钮。
2.面板的布局管理器会询问每个组件理想的大小应该是什么。
3.面板的布局管理器以它的布局策略来决定是否应该要尊重全部或部分的按钮理想。
4.把面板加到框架上。
5.框架的布局管理器询问面板的理想尺寸。
6.框架的布局管理器以它的布局策略来决定是否应该要尊重全部或部分的面板理想。
三大布局管理器:
BorderLayout:框架默认的管理器。
FlowLayout:从左到右,从上到下。是JPanel的默认管理器。。
BoxLayout:从上到下,每行一个。

操作Swing组件

1.JTextField

//构造函数
JTextField field = new JTextField(20);//20代表字宽
JTextField field = new JTextField(“Your name”);
//取得文本内容
System.out.println(field.getText());
//设定内容
field.setText(“whatever”);
field.setText("");
//取得用户输入完毕按下return/enter键的事件
field.addActionListener(myActionListener);
//选取文本字段的内容
field.selectAll();
//焦点拉回文本字段
field.requestFocus();

2.JTextArea

//构造函数
JTextArea text = new JTextArea(10,20);
//只有垂直的滚动条
JScrollPane scroller = new JScrollPane(text);
text.setLineWrap(true);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(scroller);
//替换掉文字内容
text.setText(“Not all who are lost are wandering”);
//加入文字
text.append(“button clicked”);
//选取内容
text.selectAll();
//焦点拉回文本字段
text.requestFocus();

3.JCheckBox

//构造函数
JCheckBox check = new JCheckBox(“Goes to 11);
//监听item的事件
check.addItemListener(this);
//处理事件
public void itemStateChanged(ItemEvent ev) {
String onOrOff = “off”;
if (check.isSelected()) onOrOff = “on”;
System.out.println(“Check box is “ + onOrOff);
}
//选取/不选取
check.setSelected(true);
check.setSelected(false);

4.JList

//构造函数
String [] listEntries = {“alpha”, “beta”, “gamma”, “delta”,“epsilon”, “zeta”, “eta”, “theta “};
list = new JList(listEntries);
//显示垂直的滚动条
JScrollPane scroller = new JScrollPane(list);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(scroller);
//设定显示的行数
list.setVisibleRowCount(4);
//限制用户只能选取一个项目
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//对选择事件注册
list.addListSelectionListener(this);
//处理事件
public void valueChanged(ListSelectionEvent lse) {
	if( !lse.getValueIsAdjusting()) {
		String selection = (String) list.getSelectedValue();
		System.out.println(selection);
		}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值