04747-Java(八)——图形界面设计
- J开头的是Swing组件。
- AWT组件包括:Label,Checkbox,TextField
- 请简要说明AWT组件与Swing组件的区别:
AWT组件是早期的JDK版本提供的窗口工具集,包含部分本地代码,在不同平台上运行的效果略有差异,也被称为“重量级”组件。
Swing组件是较新的JDK版本提供的窗口工具集,功能比AWT更加强大,多数组件的名字以“J”开头。Swing组件不包含任何本地代码,在任何平台上的显示效果都是一致的,也被称为“轻量级组件”。 - Swing组件定义在jaxax.swing包中。
- Swing的四种顶层容器:JFrame, JApplet, JDialog, JWindow。
- 所有容器的父类是Container。
- JFrame:一个带有标题行和控制按钮的独立窗口,有时称为框架,创建应用程序时需要使用JFrame。
- 创建小应用程序时使用 JApplet。
- Frame被称为容器组件。
- Java有哪些方法可以将组件放到内容窗格中:
Java有两种方法可以将组件放入内容窗格中。
第一种是通过顶层容器的 getContentPane()方法获得默认的内容窗格,然后将组件添加到内容窗格中。
第二种方法是创建一个新的内容窗格,将组件添加到新的内容窗格,然后用新的内容窗格取代顶层容器默认的内容窗格。 - JScrollPane是带有滚动条的面板。
- 什么是容器组件?容器组件应如何使用?
容器组件是指可以包含其他组件的组件。
容器分为顶层容器和一般用途容器,显示在屏幕上的所有组件都必须包含在某个容器中,有些容器可以嵌套,在这个嵌套层次的最外层,必须是一个顶层容器。 - 将三个按钮垂直排列的代码:
1
2
3
4
5
6
7frame=new JFrame("Buttons");
Container con=frame.getContentPane();
con.add(btn1, BorderLayout.NORTH);
con.add(btn2, BorderLayout.CENTER);
con.add(btn3, BorderLayout.SOUTH);
frame.pack();//调整窗口的大小,使其能够容纳所有组件的首选大小和布局
frame.setVisible(true); - Swing常用的四种按钮:JButton, JToggleButton, JCheckBox, JRadioButton。
- JMenu继承自JMenuItem,JMenuItem继承自AbstractButton,最终继承自JComponent。
- JButton继承自AbstractButton,AbstractButton继承自JComponent。
- JLabel直接继承自JComponent。
- JTextArea继承自JTextComponent,JTextComponent继承自JComponent。
- java.awt包中的类Graphics是所有图形处理的基础。
- 组合框上的用户事件可以通过ActionListener或ItemListener处理。
- 如何处理 JComboBox上的用户事件?【背】
JComboBox(组合框)上的用户事件既可以通过 ActionListener处理,又可以通过 ItemListener处理。
用户输入项目后按键,对应的接口是 ActionListener。
用户选定项目,对应的接口是 ItemListener。
用户的一次选择操作会引发两个 ItemEvent事件,因此通常使用 ActionListener处理比较方便。 - 请说明按钮和按钮组的关系:【背】
按钮可以添加到按钮组中,这时首先要创建一个按钮组,然后调用按钮组的add()方法将按钮添加进去。当多个按钮被添加到同一个按钮组后,如果用户选中一个按钮,那么其他按钮就会变为未选中状态,即同一个按钮组中只能有一个按钮处于被选中状态。 - 给label,button添加文字:
1
2
3
4
5
6
7
8//(this是JFrame)
label1=new JLabel("aa");//新建label并添加文字
btn=new JButton("bb");//新建button并添加文字
btn.setText("bbb");//button修改文字
btn.setToolTipText("hello");//btn修改hover title
Container con=getContentPane();
con.setLayout(new FlowLayout());//FlowLayout:按照组件添加的顺序,从左到右、从上到下排列组件 - FlowLayout的对其方式的可选值有:LEFT, CENTER, RIGHT。
- CardLayout特点:允许多个组件共用同一个显示空间,通过卡片的切换来显示不同的组件。
- BoxLayout特点:多个组件从上到下排列。
- GridLayout特点:容器被分成网格状。
- FlowLayout每行可以放1个组件。
- BorderLayout布局管理器是如何安排组件的?【背】
BorderLayout提供了一种较为复杂的组件布局管理方案。每个由BorderLayout管理的容器被划分为5个区域, 分别代表容器的上部(North)、下部(South)、左部(West)、右部(East)和中部(Center),分别使用常量 BorderLayout.NORTH、BorderLayout.SOUTH、BorderLayout.WEST、BorderLayout.EAST和BorderLayout.CENTER来表示。在容器的每个区域,可以加入一个组件。 - 设置JPanel的布局:
1
panel.setLauout(new FlowLayout(FlowLayout.LEFT));
- 向容器添加组件:
1
c.add(checkBox,BorderLayout.EAST);
- 容器中组件的位置和大小/显示方式通常由布局管理器负责安排。
- MouseMotionListener接口主要用于处理鼠标的移动和拖拽事件。
它包含两个方法:mouseMoved(MouseEvent e)
用于处理鼠标移动事件,mouseDragged(MouseEvent e)
用于处理鼠标拖动事件。 - MouseListener处理鼠标点击、鼠标释放、鼠标离开事件。
- 什么是事件侦听程序?【背】
在Java中,为了接收并处理某类用户事件,组件必须注册相应的事件处理程序,这种事件处理程序称为事件侦听程序(Listener),也称为侦听器,它是实现了对应侦听程序接口的一个类。 - 对事件的响应称为事件处理。
- 在JList上进行选择时,将引发ListSelectionEvent。
- 考试常用方法:
1
2
3
4addItemListener(this)
checkBox.isSelected()
class MyPanel extends JPanel implements MonseListener
mouseClicked(MouseEvent e) - java.awt.event中,用来检测并对事件做出反应的模型所包括的三种对象:【背】
源对象(1分)、监视器对象(1分)、事件对象(1分) - 请写出Java语言中的事件处理机制:
事件被直接送往产生这个事件的组件(1分), 组件需要注册一个或多个侦听程序(1分)。侦听程序的类中包含了事件处理程序(1分),用来接收和处理该事件(1分) - KeyListener的作用:处理键盘事件。
- 在Java的绘图区域中,坐标原点(0,0)通常位于左上角。
- 在Java中进行绘图操作时,当组件被显示出来时,需调用paint(Graphics g)方法。
- AWT的Font对象的作用是用类Font对象设置字型。
- Graphics2D类,stoke属性控制线条的宽度,笔形样式,线段连接方式,短划线图案;paint属性控制填充效果。【背】
- 什么是轻量级组件?什么是重量级组件?在程序中同时使用轻量级组件和重量级组件时,会有什么显示效果?【背】
不包含本地代码的组件成为轻量级组件。
包含本地代码的组件称为重量级组件。
当重量级组件与轻量级组件一同使用时,如果组件区域有重叠,则重量级组件总是显示在上面。 - Swing组件比AWT组件拥有更多的功能。
- JFrame是顶层容器,可指定窗口标题,Swing可以继承它
- Jpanel属于容器。
- JLabel上既可以有文本也可以有图标。
- setEnabled方法改变按钮的可用状态。
- Swing中的复选按钮:JCheckbox;单选按钮:JRadioButton;切换按钮:JToggleButton
- JPanel的默认布局管理器FlowLayout。
- 用户在程序界面所进行的操作是一个用户事件。
- 要使得已注册的按钮对象暂时不响应事件,需要使用的方法是removeActionListener(ActionListener l)。
- 在事件适配器类中实现了相应接口中全部的方法,只不过方法体都为空。
- 当要创建自定义图形时,需要由JPanel类派生一个新类,并重写父类的paintComponent()方法。
- 在Graphics类中,绘图模式主要有正常模式和异或模式2种。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 珍珠巧克力!
评论
GitalkValine