JAVA GUI 图形界面

①事件源和监听
举例,窗口里有一个按钮Button,按下这个Button,就能在窗口某个地方显示出一个图片。
此例中:
事件源是Button
监听是一段程序,一旦Button的状态被改变比如click ,这段程序就能接收到一个事件event并对窗口进行相应的操作

所以几乎事件源都要添加一个相应的监听程序:
下面是一个很简单的JAVA GUI的代码:
JAVA GUI 图形界面_第1张图片
 这是程序运行的结果:(一个硕大的按钮占据了整个屏幕)
JAVA GUI 图形界面_第2张图片               JAVA GUI 图形界面_第3张图片
//click之前                                                                  //click 之后
 
在上面的go()方法里加入下面两行的代码,能让Button里面的字体变大:
Font bigFont=new Font(Font.SANS_SERIF,Font.BOLD,34);//里面的参数依次是字体,样式,字号(前面两个随便选的)
button.setFont(bigFont);

字体变大之后的运行结果:
JAVA GUI 图形界面_第4张图片



②多个事件源 多个监听
应用内部类的概念:http://blog.163.com/it_novice/blog/static/2091830692013312104626798/
创建多个监听类ButtonListener ListListener...
button.add(new ButtonListener());
list.add(new ListListener());



③其他swing组件
JFrame
JFrame frame=new JFrame("frameName");//整个框架
frame.getContentPane().add(button);//在框架的主面板上添加swing组件

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
//这三个设置frame的属性,基本都要写
要设置JFrame不可改变大小:frame.setResizable(false);


JButton
JButton button = new JButton("button");
button.setText("new button");//更换 button上的文字
button.setSize(30, 30);//这个效果没试出来,待定
JAVA GUI 图形界面 - 小镜子~ - 菜园子
事件处理函数就是actionPeformed(ActionEvent ae){}(类要implements ActionListener)
 

JPanel 
JPanel panel=new JPanel();
panel.add(button);
panel.add(new JPanel);//panel可叠加
如果想在panel上绘制或添加图片: http://blog.163.com/it_novice/blog/static/20918306920133128328829/


JTextField
JTextField field=new JTextField(20);//构造函数要求输入长度
field.setText("field");
field.selectAll();选取文本字段的内容
field.requestFocus();//置光标于field
JAVA GUI 图形界面 - 小镜子~ - 菜园子
 

JTextArea
JTextArea textArea=newJTextArea(10,20);//构造函数要求设定 行高 和 每行的宽度
textArea.setText("textarea");
textArea.append("lalala");//在末尾添加
textArea.setLineWrap(true) ;//启动自动换行
JAVA GUI 图形界面_第5张图片
 

JScrollPane(带有滚动条的面板,一般和JTextArea或者JList一起用)
JScrollPane scroller=new JScrollPane(textArea);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);//设置总是有垂直滚动条
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);//设置没有水平滚动条
panel.add(scroller);
JAVA GUI 图形界面_第6张图片
 

JCheckBox
JCheckBox check=new JCheckBox("CheckBox");
check.setSelected(true);
JAVA GUI 图形界面 - 小镜子~ - 菜园子
JCheckBox的事件处理函数:(类要implements ItemEventListener)
public void itemStateChanged(ItemEvent ev){}

 
JList
String[ ] element={"xiaojing","xinyi","songsong","aying"};
JList list=new JList(element);
JScroller scroller=new JScroller(list);
list.setVisibleRowCount(3);//设定显示的行数
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.getSelectedValue();//获取已经被选中的值
JAVA GUI 图形界面 - 小镜子~ - 菜园子
JList事件处理函数:(要写一个内部类implements ListSelectionListener)
JAVA GUI 图形界面_第7张图片
 以下是运行结果,点哪个选项就在控制台输出哪个:
JAVA GUI 图形界面_第8张图片


 




 
 

你可能感兴趣的:(JAVA基础)