`
IT_nice
  • 浏览: 8763 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员_GUI部分代码体现

阅读更多

------- android培训java培训、期待与您交流! ----------

 

常见的组件和菜单(jmenubar)

package cn.itcast.a_gui;

import java.awt.BorderLayout;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;


import cn.itcast.a_util.FrameUtil;

public class Demo6 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		
		//面板
		JPanel panel = new JPanel();
//		panel.setBackground(Color.red);
		frame.add(panel);
		
		
		//标签
		JLabel label = new JLabel("用户名:");
		panel.add(label);
		
		//文本域
		JTextField textField = new JTextField(12);
		panel.add(textField);
		
		//标签
		JLabel label2 = new JLabel("密码:");
		panel.add(label2);
		//密码域
		JPasswordField passwordField = new JPasswordField(8);
		panel.add(passwordField);
		
		//单选按钮
		JLabel label3 = new JLabel("性别:");
		panel.add(label3);
		JRadioButton man = new JRadioButton("男");
		JRadioButton woman = new JRadioButton("女");
		//单选按钮-互斥(多选一)
		ButtonGroup buttonGroup = new ButtonGroup();
		buttonGroup.add(man);
		buttonGroup.add(woman);
		//单选按钮不能添加进容器
		panel.add(man);
		panel.add(woman);
		
		
		//复选框
		JLabel label4 = new JLabel("爱好:");
		panel.add(label4);
		JCheckBox play = new JCheckBox("运动");
		JCheckBox sleep = new JCheckBox("睡觉");
		JCheckBox movie = new JCheckBox("看电影");
		panel.add(play);
		panel.add(sleep);
		panel.add(movie);
		
		//文本域
		JLabel label5 = new JLabel("个人简历");
		panel.add(label5);
		JTextArea textArea = new JTextArea(10,10);
		panel.add(textArea);

		//列表
		String[] data = {"one","two","three"};
		JList list = new JList(data);
		panel.add(list);
		
		//按钮-注册
		JButton button = new JButton("注册");
		panel.add(button);
		
		
		//菜单条
		JMenuBar menuBar = new JMenuBar();
		//菜单
		JMenu menu1 = new JMenu("文件");
		JMenu menu2= new JMenu("格式");
		JMenu menu3 = new JMenu("帮助");
		JMenu menu4 = new JMenu("页面设置");
		//菜单项
		JMenuItem item1 = new JMenuItem("新建");
		JMenuItem item2 = new JMenuItem("保存");
		JMenuItem item3 = new JMenuItem("另存为");
		JMenuItem item4 = new JMenuItem("段落设置");
		JMenuItem item5 = new JMenuItem("文字设置");
		JMenuItem item6 = new JMenuItem("颜色设置");
		
		menuBar.add(menu1);
		menuBar.add(menu2);
		menuBar.add(menu3);
		
		menu1.add(item1);
		menu1.add(item2);
		menu1.add(item3);
		
		menu1.add(menu4);
		menu4.add(item4);
		menu4.add(item5);
		menu4.add(item6);
		//选项里面有多个选项
		frame.add(menuBar,BorderLayout.NORTH);
			
		FrameUtil.initFrame(frame, 300, 320);
	}

}

 FlowLayout流式布局

在JPanel中默认是流式布局:

public class ShowFlowLayout extends JFrame {

	public ShowFlowLayout() {
		super.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 20));

		add(new JLabel("姓名:"));
		add(new JTextField(8));
		add(new JLabel("邮箱:"));
		add(new JTextField(8));
		add(new JLabel("电话:"));
		add(new JTextField(8));
		
	}

	public static void main(String[] args) {
		ShowFlowLayout frame = new ShowFlowLayout();
		frame.setTitle("FlowLayout");
		frame.setSize(500, 200);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

 GridLayout网格布局

public class ShowGridLayout extends JFrame {
	public ShowGridLayout() {
		setLayout(new GridLayout(3, 2, 5, 5));

		add(new JLabel("姓名:"));
		add(new JTextField(8));
		add(new JLabel("邮箱:"));
		add(new JTextField(8));
		add(new JLabel("电话:"));
		add(new JTextField(8));
	}

	public static void main(String[] args) {
		ShowGridLayout frame = new ShowGridLayout();
		frame.setTitle("GridLayout");
		frame.setSize(200, 125);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

 BorderLayout边框布局

public class ShowBorderLayout extends JFrame {
	public ShowBorderLayout() {
		setLayout(new BorderLayout(5, 10));

		add(new JButton("东"), BorderLayout.WEST);
		add(new JButton("西"), BorderLayout.EAST);
		add(new JButton("南"), BorderLayout.SOUTH);
		add(new JButton("北"), BorderLayout.NORTH);
		add(new JButton("中"), BorderLayout.CENTER);
	}

	public static void main(String[] args) {
		ShowBorderLayout frame = new ShowBorderLayout();
		frame.setTitle("BorderLayout");
		frame.setSize(300, 200);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

 事件

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class ShowButton extends JFrame {
	public ShowButton() {
		JButton button = new JButton("点我");
		add(button);

		// 添加鼠标监听事件
		button.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("按钮被点击");
				Object source = e.getSource();
				JButton button = (JButton) source;
				String text = button.getText();
				if ("按钮被点击".equals(text)) {
					button.setText("点我");
				} else {
					button.setText("按钮被点击");
				}
			}
		});
	}

	public static void main(String[] args) {
		ShowButton frame = new ShowButton();
		frame.setTitle("我的框架");
		frame.setSize(400, 200);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

 适配器

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;

public class AdapterDemo extends JFrame {
	AdapterDemo() {
		addWindowListener(new MyAdapter());
	}

	public static void main(String[] args) {
		AdapterDemo frame = new AdapterDemo();
		frame.setTitle("我的框架");
		frame.setSize(400, 200);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}

	class MyAdapter extends WindowAdapter {
		public void windowActivated(WindowEvent e) {
			System.out.println("windowActivated....");
		}
	}

}

 

分享到:
评论

相关推荐

    黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件).zip

    在本视频教程“黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件)”中,讲师毕向东深入讲解了Java GUI中的Action事件处理机制,这是构建用户友好界面的关键部分。 首先,我们要理解什么是GUI。GUI,...

    kflash_gui.zip

    4. **擦除操作**:kflash_gui提供擦除全部或部分内存区域的功能,确保新固件的完整覆盖。 5. **进度显示**:在固件烧录过程中,kflash_gui会实时显示传输进度和错误信息,方便开发者监控烧录状态。 三、使用kflash...

    uc_GUI 源代码和 源码说明文件

    uc_GUI 是一个专门为嵌入式系统设计的图形用户界面库,它的源代码和源码说明文件对于开发者来说是深入了解和定制GUI功能的关键资源。uc_GUI的源码提供了完整的图形绘制和交互逻辑,使得开发者能够在资源有限的嵌入式...

    ZLG_GUI在51单片机上的移植代码

    4. **代码优化**:针对51单片机的性能特点,可能需要对ZLG_GUI的部分算法进行优化,例如简化绘图操作,减少计算量。 5. **事件处理**:实现ZLG_GUI的事件处理机制,使用户可以通过按键或其他输入设备与GUI进行交互...

    SimpleBGC_GUI_2_2b2中文版 云台调试软件

    SimpleBGC_GUI_2_2b2中文版是一款专为云台调试设计的软件,它提供了用户友好的界面和强大的功能,使得云台的设置和调整变得更加简单易行。这款软件是针对SimpleBGC控制器的,这是一个广泛应用于无人机、摄影设备和...

    SeggerEval_WIN32_MSVC_MinGW_GUI_V550.rar

    描述中的“SeggerEval_WIN32_MSVC_MinGW_GUI_V550原版的代码”意味着这包含了Segger GUI库的原始代码,适用于Microsoft Visual C++(MSVC)编译器以及MinGW(Minimalist GNU for Windows)环境。MinGW是一个开源项目...

    MATLAB GUI(源代码).zip_matlab GUI_matlab gui 代码_matlab gui代码_matlab

    MATLAB GUI设计学习(源代码),包含了大量matlab gui学习设计的源代码,可供参考

    GUI_handles.zip_GUI_handles_GUI_handles.zip _MATLAB GUI源代码_Matla

    "GUI_handles.zip"是一个包含MATLAB GUI源代码的压缩包,特别针对"handles"这一主题,旨在帮助用户深入理解并熟练掌握MATLAB GUI的编写。 在MATLAB GUI中,"handles"是一个关键概念,它是一种数据结构,存储了GUI...

    ZLG_GUI.zip_12864 zlg gui_ZLG_GUI_zlg gui_zlg gui12864_zlggui图标菜

    压缩包中的"ZLG_GUI"文件很可能是库的源代码、编译好的二进制文件、文档、示例代码或者是配置文件等,帮助开发者理解和使用这个GUI库。开发者可以通过这些资源来学习如何在自己的项目中集成和自定义ZLG_GUI,从而...

    K210烧录软件kflash_gui

    K210烧录软件kflash_gui

    ZLG_GUI.zip_ZLG_GUI

    这些代码实例有助于开发者理解和学习GUI编程的最佳实践,同时也提供了可以直接用于项目中的代码片段,大大缩短了开发周期。 此外,ZLG_GUI可能还包括一些高级特性,如多线程支持、图形渲染优化、动画效果以及触摸...

    jd_gui.exe

    但总体而言,jd_gui作为一个直观且易于使用的工具,对于开发人员来说是一个宝贵的资源,特别是在处理没有源代码的第三方库或者进行代码逆向工程时。 此外,使用jd_gui需要注意版权和许可问题,因为反编译可能涉及到...

    GUI.rar_ZLG-gui_zlg_zlg gui_zlg/gui_周立功

    【GUI.rar_ZLG-gui_zlg_zlg gui_zlg/gui_周立功】是一个与周立功相关的GUI(图形用户界面)开发资源包,适用于SmartARM开发板。这个压缩包包含了一个名为GUI_IcoMenu的文件,可能是一个图标菜单的实现,以及一个...

    gui.rar_GUI_Python-GUI_gui python_python gui_python界面

    在这个压缩包中,"dm01_tpinter.py"可能就是一个基于Tkinter库的GUI示例代码。 Tkinter是Python的内置GUI库,无需额外安装即可使用,是初学者学习GUI编程的首选。它提供了一系列的组件,如按钮、文本框、标签、框架...

    gui.zip_GUI_GUI图像处理_图像处理_图像处理 GUI_图像处理GUI

    标题中的"gui.zip_GUI_GUI图像处理_图像处理_图像处理_GUI_图像处理GUI"表明这是一个关于图像处理的MATLAB GUI程序的压缩包。这个程序可能包含了用于显示、操作和分析图像的各种功能。 描述中提到"基于matlab的简单...

    zlg_gui_t6963

    基于这些信息,我们可以推测zlg_gui_t6963是一个为AVR微控制器设计的GUI库,可能包含了驱动程序、API函数和示例代码,以便开发者能在T6963控制器上构建图形界面。开发者可能需要使用IAR IDE来编译和调试代码,而...

    ZLG__GUI.zip_ZLG_GUI_zlg gui_周立功_周立功 GUI_周立功gui

    在IT行业中,GUI(图形用户界面)是软件开发中的一个重要组成部分,它使用户能够通过图形化的方式与应用程序交互。周立功,作为一个知名的IT专家,可能在这个领域有深入的研究和贡献,尤其是他的“ZLG GUI”项目。这...

    image_processing.rar_GUI image_IMAGE_MATLAB_GUI_image gui_image

    标题中的"image_processing.rar"指的是一个使用MATLAB进行图像处理的项目,而"GUI image_IMAGE_MATLAB_GUI_image gui_image"这部分描述可能意味着该压缩包包含了用于图像处理的图形用户界面(GUI)代码和示例图像。...

    45398646matlabgui_GUI_GUI图像处理_GUI图像处理_MATALBGUI_图像处理GUI.zip

    《MATLAB GUI图像处理:构建高效用户...这个资源“45398646matlabgui_GUI_GUI图像处理_GUI图像处理_MATALBGUI_图像处理GUI”可能包含了实际的GUI设计示例和代码,对于学习和实践MATLAB GUI图像处理具有很高的参考价值。

    uc_gui源代码 C语言

    uc_gui源代码是基于C语言实现的一个图形用户界面库,主要设计用于嵌入式系统。这个库对于有C语言基础的人来说,是一个极好的学习资源,能够深入理解GUI(图形用户界面)的设计原理和编程技巧。ucGUI库不仅包含了丰富...

Global site tag (gtag.js) - Google Analytics