我相信在没给Java初学者中Java的图形化界面是一处不容易处理的模块,我想通过这片简单的图形化编程能够有助于初学者的学习。
首先。Java提供了JFrame容器:
JFrame,这是一个最顶层的窗体容器,所有其他的组件必须放在顶层容器里。
JDialog对话框容器,他要依附于其父组件,他不是一个顶层容器。
JPanel,他不是顶层容器,必须放在顶层容器中,任何一个容器都有add()方法,Panel面板是透明的(默认),他也是一个组件。
FlowLayout,流式布局管。Panel的默认布局管理就是FlowLayout。
BorderLayout,按方位进行布局管理,(North,South,East,West,Middle)不明确指定,就会默认加载在中间(Middle),add(Component comp,String place)这个方法是在指定的位置添加组件。
GridLayout,网格布局,通过行列,间距,来用网格分割,把组件放入如网格中,先行后列摆放组件。
CardLayout,卡片布局,面板重叠放置。
GridBogLayout,组件可以跨行跨列的网格布局。
其次,在Java中提供了大量的组件 下面介绍一些常用的组件
Button :按钮
JTextField:单行文本域
JTextArea:多行文本区
JScrollPane:滚动窗体
JComboBox:下拉选择框
JRadioButton:单选按钮
JCheckBox:多选按钮
JList:多行列表
JLabel:标签
JPasswordField:密码输入框
JEditorPane:显示结构化文档
Border:边框
JMenuBar:菜单条
JMenu:菜单
JMenuItem:菜单项
JPopupMenu:弹出式菜单
JSlider:滑动条
JProgressBar:进度条
JTabbedPane:分层面板
JSplitPane:分隔面板
JToolBar:工具条
JFileChooser:文件选择器
JColorChooser:颜色选择器
在Java图形化界面设计中有一个非常重要的注意事项即在绘制完所有的界面元素之后再设置界面的可视化 (用setVisible(boolean b)默认为flase 不可见 要设置为true 可见)否则一些元素会出错 请一定要记住。
下面是一个简单的Java图形化界面的小程序:
package BianTai;
import java.awt.Button;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestSwing extends JFrame {
private JLabel j2;
private JTextField jtf;
public TestSwing() {
JPanel jp = new JPanel();// 定义基础面板(画布)
jp.setColor.white); // 设置画布的背景色
setContentPane(jp);// 画板和画布相绑定
// 创建俩个画布其中jp1为上半部分画布jp2为下半部分画布
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
// 设置画布的背景色
jp1.setColor.blue);
jp2.setColor.red);
GridLayout gl = new GridLayout(2, 1);// 创建布局方式:网状布局:N行N列
jp.setLayout(gl);// 设置基础面板的布局为指定布局。
// 创建组件
jtf = new JTextField(15);// 单行文本输入框组件
JButton jb = new JButton("提交");// 按钮组件
JLabel jl = new JLabel("请输入姓名:");// 标签组件
j2 = new JLabel("输出很好:");
// 讲组件添加到画板中
jp1.add(jl);
jp1.add(jtf);
jp1.add(jb);
setBounds(200, 200, 400, 400);// 设置窗口大小
// 添加上下画布
jp.add(jp1);
jp.add(jp2);
jp2.add(j2);
pack();// 根据组件自适应窗体大小
// setResizable(false);// 设置窗体不能改变大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("我的小窗口");//设置窗口标题
jp1.add(jb);
//此处通过内部类能将文本输入框的内容在下方显示 并清空文本输入框中的内容
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
j2.setText(jtf.getText());
jtf.setText("");
}
});
setVisible(true);//设置窗口可见
}
public static void main(String[] args) {
new TestSwing();
}
}
转载于:https://blog.51cto.com/zhaoyanming/1256378