1.Java的图形界面
1.awt java.awt
2.swing javax.swing
2.常用的组件:分为容器组件和元素组件
(1)容器组件
JFrame 窗体类 (顶级容器)
JPanel 面板类 (最灵活的容器)
JMenuBar 菜单栏
JMenu 菜单类
注意:每个容器都会有一个默认的布局,JFrame的默认布局为BorderLayout(边框布局),JPanel的默认布局为FlowLayout(流式布局)。
(2)元素组件
JLabel 标签类
JButton 按钮类
JTextField 输入框类
JPasswordField 密码输入框类
JComboBox 下拉框类
JCheckBox 复选框类
JMenuItem 菜单
(都是javax.swing包下的类。)
3.常用的布局
BorderLayout 边框布局
FlowLayout 流式布局
GridLayout 网格布局
绝对布局(空布局)
注意:所有以Layout结尾的类都是布局类。
4.界面实现
实现界面的步骤:
1.定义类,在类中定义主函数和初始化界面的方法.
2.在初始化界面的方法中,实例化一个JFrame窗体类的对象.
3.设置窗体对象的属性值
4.实例化布局对象并且设置窗体容器的布局方式.
5.实例化对象容器或者元素组件的对象,让后将对象添加到窗体上.
6.在主函数中实例化类的对象,然后调用初始化界面的方法
本人认为最最最重要的是:学会使用API文件!
5。练习
1.QQ登录界面
2.计算器界面
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPasswordField; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRootPane; public class Login { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Login log=new Login(); log.initUI(); } public void initUI(){ JFrame jf=new JFrame();//构造一个窗体对象 jf.setTitle("QQ登录界面");//设置标题 jf.setLocation(200, 200); jf.setSize(360, 280);//设置窗体大小 jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序 jf.setResizable(false);//设置禁止用户调整窗体大小 jf.setUndecorated(true); //实例化一个背景图标对象 ImageIcon backgroundImage=new ImageIcon("Images/36.jpg"); //实例化一个标签对象用来显示背景图标 JLabel jlaBackground=new JLabel(backgroundImage); //设置JLabel组件的显示位置和大小 jlaBackground.setBounds(0,0,backgroundImage.getIconWidth(),backgroundImage.getIconHeight()); //将jlaBackground添加到JLayeredPane的底层 jf.getLayeredPane().add(jlaBackground,new Integer(Integer.MIN_VALUE)); //获取ContentPane对象 JPanel contentPane=(JPanel)jf.getContentPane(); //设置ContentPane对象为透明 contentPane.setOpaque(false); //创建北边的面板对象 JPanel northPanel=new JPanel(); northPanel.setOpaque(false);//设置面板为透明 northPanel.setPreferredSize(new Dimension(0,110)); jf.add(northPanel,BorderLayout.NORTH); //创建一个西边的面板对象 JPanel westPanel=westPanel(); westPanel.setOpaque(false); jf.add(westPanel,BorderLayout.WEST); //创建一个中间的面板对象 JPanel centerPanel=centerPanel(); centerPanel.setOpaque(false);//设置面板为透明 jf.add(centerPanel,BorderLayout.CENTER); //创建一个南边的面板对象 JPanel southPanel=southPanel(); //southPanel.setOpaque(false);//设置面板为透明 jf.add(southPanel,BorderLayout.SOUTH); jf.setVisible(true);//设置窗体显示出来 } public JPanel westPanel(){ // 实例化一个JPanel对象 JPanel panel=new JPanel(); //实例化一个流式布局对象,指定对齐方式为右对齐 FlowLayout fl=new FlowLayout(FlowLayout.RIGHT); panel.setLayout(fl); //实例化一个ImageIcon图标对象 ImageIcon image=new ImageIcon("Images/2.jpg"); //实例化一个JLable对象 JLabel jla=new JLabel(image); //将图标添加到面板上 panel.add(jla); // 返回面板对象 return panel; } public JPanel centerPanel(){ // 实例化一个JPanel对象 JPanel panel=new JPanel(); //实例化一个流式布局对象,指定对齐方式为左对齐 FlowLayout fl=new FlowLayout(FlowLayout.LEFT); panel.setLayout(fl); //实例化一个下拉框的对象 JComboBox jco=new JComboBox(); jco.addItem("499454814"); jco.setEditable(true);//设置可编辑 jco.setPreferredSize(new Dimension(187,25));//设置组件大小 //将组件添加到面板上 panel.add(jco); //实例化一个标签对象 JLabel jla1=new JLabel("注册账号"); panel.add(jla1); //实例化一个密码输入框对象 JPasswordField jpf=new JPasswordField(); jpf.setPreferredSize(new Dimension(187,25)); panel.add(jpf); //实例化一个标签对象 JLabel jla2=new JLabel("找回密码"); panel.add(jla2); //实例化复选框对象 JCheckBox jck1=new JCheckBox("记住密码"); jck1.setOpaque(false); JCheckBox jck2=new JCheckBox("自动登录"); jck2.setOpaque(false); panel.add(jck1); panel.add(jck2); // 返回面板对象 return panel; } public JPanel southPanel(){ // 实例化一个JPanel对象 JPanel panel=new JPanel(); //实例化一个流式布局对象,指定对齐方式为左对齐 FlowLayout fl=new FlowLayout(); panel.setLayout(fl); //实例化一个按钮的对象 JButton jb=new JButton("登 录"); jb.setOpaque(false); jb.setPreferredSize(new Dimension(150,35)); panel.add(jb); // 返回面板对象 return panel; } }
问题:不会隐匿窗口。
2.计算器界面
import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JMenu; public class Callog { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Callog log=new Callog(); //调用初始化界面的方法 log.initUI(); } //定义一个初始化界面的方法 public void initUI(){ javax.swing.JFrame jf=new javax.swing.JFrame();//构造一个窗体对象 jf.setTitle("计算器");//设置标题 jf.setLocation(200,200);//设置窗体显示的位置 jf.setSize(280,320);//设置窗体的大小 jf.setResizable(false);//设置禁止用户调整窗体大小 jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序 //设置窗体布局为边框布局 java.awt.BorderLayout bl=new java.awt.BorderLayout(); jf.setLayout(bl); //创建一个菜单栏对象 JMenuBar menubar=new JMenuBar(); jf.setJMenuBar(menubar); menubar.setOpaque(false); JMenu jm1=new JMenu("编辑(E)"); menubar.add(jm1); JMenuItem jmt1=new JMenuItem("复制(C) (Ctrl+C)"); jm1.add(jmt1); JMenuItem jmt2=new JMenuItem("粘贴(V) (Ctrl+V)"); jm1.add(jmt2); JMenu jm2=new JMenu("查看(V)"); menubar.add(jm2); JMenuItem jmt3=new JMenuItem("标准型 (T)"); jm2.add(jmt3); JMenuItem jmt4=new JMenuItem("科学型(S)"); jm2.add(jmt4); JMenuItem jmt5=new JMenuItem("数字分组(I)"); jm2.add(jmt5); JMenu jm3=new JMenu("帮助(H)"); JMenuItem jmt6=new JMenuItem("帮助主题(H)"); jm3.add(jmt6); JMenuItem jmt7=new JMenuItem("关于计算器(A)"); jm3.add(jmt7); menubar.add(jm3); //实例化一个JPanel的容器对象 javax.swing.JPanel panelNorth= new javax.swing.JPanel(); java.awt.FlowLayout fl=new java.awt.FlowLayout(); panelNorth.setLayout(fl); javax.swing.JTextField jtf=new javax.swing.JTextField("0"); panelNorth.add(jtf); jtf.setHorizontalAlignment(4); jtf.setPreferredSize(new java.awt.Dimension(270,50)); //将panelNorth添加到窗体的北边 jf.add(panelNorth,java.awt.BorderLayout.NORTH); //实例化一个JPanel的容器对象 javax.swing.JPanel panelWest=new javax.swing.JPanel(); panelWest.setPreferredSize(new java.awt.Dimension(180,120)); java.awt.FlowLayout fl1=new java.awt.FlowLayout(java.awt.FlowLayout.CENTER); panelWest.setLayout(fl1); //实例化按钮对象,并添加到窗体 javax.swing.JButton jbuLogin1 = new javax.swing.JButton(" MC"); panelWest.add(jbuLogin1); javax.swing.JButton jbuLogin2= new javax.swing.JButton(" M+"); panelWest.add(jbuLogin2); javax.swing.JButton jbuLogin3= new javax.swing.JButton(" M- "); panelWest.add(jbuLogin3); javax.swing.JButton jbuLog3= new javax.swing.JButton("AC "); panelWest.add(jbuLog3); javax.swing.JButton jbuLog4= new javax.swing.JButton(" +/-"); panelWest.add(jbuLog4); javax.swing.JButton jbuLog5= new javax.swing.JButton(" / "); panelWest.add(jbuLog5); javax.swing.JButton jbuLogin6= new javax.swing.JButton(" 7 "); panelWest.add(jbuLogin6); javax.swing.JButton jbuLogin7= new javax.swing.JButton(" 8 "); panelWest.add(jbuLogin7); javax.swing.JButton jbuLogin8= new javax.swing.JButton(" 9 "); panelWest.add(jbuLogin8); javax.swing.JButton jbuLogin10= new javax.swing.JButton(" 4 "); panelWest.add(jbuLogin10); javax.swing.JButton jbuLogin11= new javax.swing.JButton(" 5 "); panelWest.add(jbuLogin11); javax.swing.JButton jbuLogin12= new javax.swing.JButton(" 6 "); panelWest.add(jbuLogin12); javax.swing.JButton jbuLogin14= new javax.swing.JButton(" 1 "); panelWest.add(jbuLogin14); javax.swing.JButton jbuLogin15= new javax.swing.JButton(" 2 "); panelWest.add(jbuLogin15); javax.swing.JButton jbuLogin16= new javax.swing.JButton(" 3 "); panelWest.add(jbuLogin16); javax.swing.JButton jbuLogin18= new javax.swing.JButton(" 0 "); panelWest.add(jbuLogin18); javax.swing.JButton jbuLogin19= new javax.swing.JButton(" . "); panelWest.add(jbuLogin19); jf.add(panelWest,java.awt.BorderLayout.WEST);//将panelWest添在窗体的西边 //实例化一个JPanel的容器对象 javax.swing.JPanel panelCenter=new javax.swing.JPanel(); java.awt.FlowLayout fl2=new java.awt.FlowLayout(java.awt.FlowLayout.CENTER); panelCenter.setLayout(fl2); panelCenter.setPreferredSize(new java.awt.Dimension(55,160)); jf.add(panelCenter,java.awt.BorderLayout.CENTER);//将panelCenter添在窗体的中间 String jbu[]={" MR "," sqrt "," * "," - "," + "," = "}; for(int i=0;i<jbu.length;i++){ javax.swing.JButton btn = new javax.swing.JButton(jbu[i]); panelCenter.add(btn); } jf.setVisible(true);//让窗体显示出来 } }
问题:为什么它不对称呢?!
续:哈哈,O(∩_∩)O~终于知道它为什么不对称了,改进了一下,也许看不出来什么变化,但它对称了
自我感觉它对称了些,科学数据也证明了这点~
相关推荐
"swing界面美化包"就是这样一个工具,它可以帮助开发者轻松地改变Java应用的视觉风格。 Swing界面美化的实现主要依赖于两个关键概念:LookAndFeel和UI Delegate。LookAndFeel是一种可以改变所有组件外观和感觉的...
Java Swing 是Java标准库中的一个组件,用于创建图形用户界面(GUI)。Swing 提供了丰富的组件集合,如按钮、文本框、菜单等,用于构建桌面应用程序。然而,Swing 的默认界面风格(LookAndFeel)在视觉上可能相对...
- "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...
JavaSwing界面设计(所有控件及示例)
在本文中,我们将深入探讨如何使用Java编程语言创建一个Swing界面应用,该应用能够修改本地计算机的IP地址。这个程序允许用户存储多个预设IP地址,并方便地在它们之间切换,同时也支持删除不需要的IP配置。我们将会...
在本Java写的Swing界面系统中,你将找到完整的源代码,可以直接运行并学习Swing的基本用法和高级特性。 1. **Swing组件基础**:Swing 提供了各种组件,如 JButton、JLabel、JTextField、JTextArea、JComboBox、...
swing调用OCX或dll的方法有很多,其中包括:jcob、comfyj、jawin、jni、jna等等很多方式,但是如果要显示dll或ocx的控件在swing界面上,就有点麻烦了,就像ocx在IE中显示的对象一样。最后通过SWT中嵌入OCX,然后把...
总的来说,使用Java Swing界面实现数据库基本操作涉及到以下几个关键点: 1. 理解Swing组件和布局管理,构建用户界面。 2. 掌握JDBC,包括连接数据库、创建Statement或PreparedStatement、执行SQL语句和处理结果集。...
这篇名为“在Swing界面中嵌入JavaFX运行的视频”的博客文章探讨了如何将JavaFX的视频播放能力整合到Swing应用中,以提升用户体验。 首先,我们需要理解Swing和JavaFX之间的交互。虽然Swing是早期的UI库,但JavaFX因...
swing界面设计ppt文档,介绍swing各组件的用法,并有简单的实例和最终练习
【基于Java Swing界面的图书管理系统】是一个利用Java的Swing库构建的图形用户界面应用程序,专为管理和组织图书信息而设计。Swing是Java提供的一个轻量级组件库,用于创建桌面应用程序,提供了丰富的UI控件和事件...
Java 实现银行家算法(Swing 界面) 银行家算法是操作系统中非常重要的一种资源分配算法,用于避免死锁和饥饿的出现。下面我们将通过 Java 语言来实现银行家算法,并使用 Swing 库来设计一个友好的图形用户界面。 ...
标题中的"4个swing界面"可能指的是四个不同的Swing界面示例,这些示例可能是为了展示Swing如何构建不同类型的窗口或对话框。对于初学者来说,了解并实践这些例子是非常有益的,因为它们可以深入理解Swing组件的用法...
Java通过swing界面实现简易飞机小游戏.zipJava通过swing界面实现简易飞机小游戏.zip Java通过swing界面实现简易飞机小游戏.zipJava通过swing界面实现简易飞机小游戏.zip Java通过swing界面实现简易飞机小游戏.zip...
本demo正是一个很好的教学示例,展示了如何集成和使用Substance库来美化Swing界面。 在"main"函数中的注释,作者提供了一个简单的教程,指导如何更换皮肤。通常,这涉及到加载Substance库,创建一个自定义的LookAnd...
在本教程中,我们将探讨Swing界面设计的一些基本概念和实践,通过一个简单的小例子来展示如何创建和定制GUI组件。 首先,Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)等,用于...
标题“java漂亮swing界面”可能是指使用Java Swing来设计具有良好视觉吸引力和用户体验的GUI。在Java Swing中,可以通过自定义外观和使用特定的布局管理策略来实现漂亮的界面。 **Swing组件** 1. **JFrame**: 这是...