**JAVA** GUI图形界面编程-swing的使用
2017-02-22 19:59
316 查看
>中间容器的嵌套使用
中间容器的使用对窗体、窗格、面板的理解。
窗体Frame是包括放大、关闭按钮的整个可视化界面
窗格Pane是一种对面的分割工具,能够将洁面按照不同的要求分割成各种形状
面板Panel是一种用来储存空间的空间,向下放入控件,向上添加到已经分好的窗格当中
>容器的布局管理
布局管理FlowLayout 流式布局
BorderLayout 边界布局
GridLayout 网格布局
CardLayout 卡片布局
BoxLayout 盒式布局
GridBagLayout 网格包布局
布局是对panel面板的操作因为它是直接存储控件的容器
>菜单与表格项
java.swing的菜单和表格JMenebar菜单条
JMenu菜单
JMenuItem菜单项
>swing事件监听机制(与学习awt时相同)
>代码示例:
package useSwing; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.LayoutManager; import java.awt.*; import javax.swing.*; import javax.swing.event.MenuListener; /** * JFrame的应用,直接继承JFrame类能够直接使用其中对JFrame进行操作的方法 * * 中间容器的使用 * 对窗体、窗格、面板的理解。 * 窗体Frame是包括放大、关闭按钮的整个可视化界面 * 窗格Pane是一种对面的分割工具,能够将洁面按照不同的要求分割成各种形状 * 面板Panel是一种用来储存空间的空间,向下放入控件,向上添加到已经分好的窗格当中 * * 布局管理 * FlowLayout 流式布局 * BorderLayout 边界布局 * GridLayout 网格布局 * CardLayout 卡片布局 * BoxLayout 盒式布局 * GridBagLayout 网格包布局 * 布局是对panel面板的操作因为它是直接存储控件的容器 * * 事件处理机制 * 与java.awt学习时的时间处理机制完全相同 * * java.swing的菜单和表格 * JMenebar菜单条 * JMenu菜单 * JMenuItem菜单项 */ public class extendJFrame extends JFrame{ /** * 当前窗体的构造函数 * 对当前窗体进行基本的设置。 */ public extendJFrame(){ super("MySecondJFrame"); setSize(300, 300); setLocation(500, 400); setDefaultCloseOperation(EXIT_ON_CLOSE); setExtendedState(NORMAL); init(); } private void init(){ Container con = getContentPane();//得到内部的无边界窗格 JPanel panel = new JPanel();//创建一个面板对象 FlowLayout fl = new FlowLayout(FlowLayout.LEFT,10,10);//组件的位置,组件之间的水平和垂直间距 //属性gridx,gridy位置,gridwidth,gridheight占据网格数,anchor方位,fill充满方式 GridBagConstraints gbc = new GridBagConstraints(); GridBagLayout gbl = new GridBagLayout(); BorderLayout bl1 = new BorderLayout(10,10); CardLayout layout1 = new CardLayout(10,10);//组件与容器边缘的间距 Box b1 = Box.createHorizontalBox();//创建一个从左到右显示其组件的 Box b2 = Box.createVerticalBox();//创建一个从上到下显示其组件的 Box //panel.setLayout(bl1); panel.setLayout(new GridLayout(2,4)); //panel.setLayout(gbl); JButton butt1 = new JButton("Press Me1");//创建一个按钮对象 panel.add(butt1,BorderLayout.CENTER);//添加对象 con.add(panel); JButton butt2 = new JButton("Press Me2");//创建一个按钮对象 panel.add(butt2,BorderLayout.EAST);//添加对象 con.add(panel); JButton butt3 = new JButton("Press Me3");//创建一个按钮对象 panel.add(butt3,BorderLayout.WEST);//添加对象 con.add(panel); JButton butt4 = new JButton("Press Me4");//创建一个按钮对象 panel.add(butt4,BorderLayout.NORTH);//添加对象 con.add(panel); JButton butt5 = new JButton("Press Me5");//创建一个按钮对象 panel.add(butt5,BorderLayout.SOUTH);//添加对象 con.add(panel); /* JTextArea ta1 = new JTextArea(50,50); JScrollPane sp1 = new JScrollPane(ta1); con.add(sp1); JTextArea ta2 = new JTextArea(50,50); JSplitPane sp2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,ta2,panel); con.add(sp2); JTabbedPane tp = new JTabbedPane(); tp.setTabPlacement(int); tp.addChangeListener(); */ //事件处理机制的使用 //创建菜单 JMenuBar bar = new JMenuBar(); setJMenuBar(bar); JMenu menu = new JMenu("文件"); JMenu menu2 = new JMenu("Edit"); JMenuItem newf = new JMenuItem("新建"); newf.setAccelerator(KeyStroke.getKeyStroke("ctrl N")); JMenuItem open = new JMenuItem("打开"); menu.add(newf); menu.add(open); //JPoputMenu popupMenu = new JPopupMenu();设置弹出菜单 menu.addMenuListener(null); bar.add(menu); //表格JTable //当所有的组件都添加以后,要重新设置一次可见性。 setVisible(true); int rows = 3; int cols = 4; JTable table = new JTable(rows,cols); table.setShowGrid(true); table.setGridColor(Color.RED); table.setRowHeight(5); } public static void main(String[]args){ extendJFrame f=new extendJFrame(); } }
相关文章推荐
- [Java]Swing基础编程【1】基本组件的使用
- **JAVA** GUI图形界面编程-Swing的使用
- 使用Swing编写win7简易计算器1——页面编程
- Java Swing编程的时候使用JTable出现ArrayIndexOutOfBoundsException问题
- Java的Swing编程中使用SwingWorker线程模式及顶层容器
- Swing编程帮助,美化包的使用以及系统托盘
- Java中Swing编程JFrame窗口的使用
- [今天的编程日记, 在vb中使用vc编译的dll实例]
- C语言, 值得终身使用的编程工具(二)―――― “秘密”
- 使用Java开始面向对象的编程
- 编程使用WMI 控制连接属性
- linux下使用系统调用编程实现dir命令功能
- 通过一个简单的SWING日历BEAN开发学习Calendar类的使用(1)Calendar概述
- 使用JAVA开始面向对象的编程
- 使用C#进行Word 2002和Excel 2002编程
- 使用NUnit在.Net编程中进行单元测试
- Delphi下汉字输入法的编程及使用
- 编程使用WMI 控制连接属性
- 通过一个简单的SWING日历BEAN开发学习Calendar类的使用(2)JCalendar源代码