当前位置: 首页 > news >正文

网站备案查询工信部管理系统专业做网站的公司

网站备案查询工信部管理系统,专业做网站的公司,在本地做装修在那个网站好,怎样向网站上传照片GUI Java GUI**1、Java GUI 概述****2、容器****2、1 窗口****2、2 弹窗和对话框****对话框****自定义弹窗** **2、3 面板****普通面板****滚动面板****分隔面板****选项卡面板** **3、布局****3.1、流式布局****3.2、网格布局****3.3、边框布局****4、组件****4.1、基本组件**… GUI Java GUI**1、Java GUI 概述****2、容器****2、1 窗口****2、2 弹窗和对话框****对话框****自定义弹窗** **2、3 面板****普通面板****滚动面板****分隔面板****选项卡面板** **3、布局****3.1、流式布局****3.2、网格布局****3.3、边框布局****4、组件****4.1、基本组件****标签****按钮****列表****文本框****进度条和滑块** **4.2、复杂组件****文件和颜色选择器****菜单栏和工具栏** **5、事件****5.1、鼠标监听事件****5.2、键盘监听事件****5.3、窗口监听事件** Java GUI setSize()、setPreferredSize()的区别 Java GUI 1、Java GUI 概述 GUIGraphical User Interface简称 GUI图形用户界面是指采用图形方式显示的计算机操作用户界面与早期计算机使用的命令行界面相比图形界面对于用户来说在视觉上更易于接受。 Java GUI主要有两个核心库分别是AWTjava.awtAbstract Windows ToolKit(抽象窗口工具包)和Swingjavax.swingAWT的扩展AWT需要调用本地系统方法来实现功能属重量级控件而Swing是在AWT的基础上建立的一套图像界面系统其中提供了更多的组件而且完全由Java实现增强了移植性属轻量级组件。 2、容器 容器Container是组件Component的子类一个容器可以容纳多个组件并使他们成为一个整体。容器可以简化图形化界面的设计以整体结构来布置界面所有的组件都可以通过add()方法加入容器中。容器共有四种类型分别是窗口JFrame、弹窗JDialog、面板JPanel、滚动面板JScrollPanel。 2、1 窗口 Frame或JFrame类用于创建一个具有标题栏的框架窗口作为程序的主要界面它不依赖其他容器可以单独存在。 public class JFrameUse {public static void main(String[] args) {// 初始化窗口JFrame jFrame new JFrame(这个是窗口的标题);// 设置窗口的位置和大小jFrame.setBounds(400, 300, 500, 500);// 设置窗口的背景颜色jFrame.setBackground(new Color(175, 114, 114));// 设置窗口是否可见jFrame.setVisible(true);// 设置窗口是否可以缩放jFrame.setResizable(false);/*** 设置窗口的相对位置。* 如果 comp 整个显示区域在屏幕内, 则将窗口放置到 comp 的中心;* 如果 comp 显示区域有部分不在屏幕内, 则将该窗口放置在最接近 comp 中心的一侧;* comp 为 null, 表示将窗口放置到屏幕中心。*/jFrame.setLocationRelativeTo(null);/*** 设置窗口关闭按钮点击后的默认操作, 参考值:* WindowConstants.DO_NOTHING_ON_CLOSE: 不执行任何操作。* WindowConstants.HIDE_ON_CLOSE: 隐藏窗口不会结束进程, 再次调用 setVisible(true) 将再次显示。* WindowConstants.DISPOSE_ON_CLOSE: 销毁窗口, 如果所有可显示的窗口都被 DISPOSE, 则可能会自动结束进程。* WindowConstants.EXIT_ON_CLOSE: 退出进程。*/jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);} } 2、2 弹窗和对话框 JDialog对话框使用 JDialog 类可以创建自定义有的对话框或者调用 JOptionPane 中的多个静态方法快速创建各种标准的对话框。 JOptionPane是JavaSwing内部已实现好的以静态方法的形式提供调用能够快速方便的弹出要求用户提供值或向其发出通知的标准对话框。主要具有以下几种那类型 showMessageDialog消息对话框向用户展示一个消息没有返回值。showConfirmDialog确认对话框询问一个问题是否执行。showInputDialog输入对话框要求用户提供某些输入。showOptionDialog选项对话框上述三项的大统一自定义按钮文本询问用户需要点击哪个按钮。 上述四个类型的方法包括其若干重载的参数遵循一致的模式下面介绍各参数的含义: parentComponent: 对话框的父级组件决定对话框显示的位置对话框的显示会尽量紧靠组件的中心如果传 null则显示在屏幕的中心。 title: 对话框标题。 message: 消息内容。 optionType: 选项按钮的类型。 selectionValues、initialSelectionValue: 提供的输入选项以及默认选中的选项。 icon: 自定义的对话框图标如果传 null则图标类型由 messageType 决定。 messageType: 消息类型主要是提供默认的对话框图标。可能的值为 JOptionPane.PLAIN_MESSAGE 简单消息不使用图标JOptionPane.INFORMATION_MESSAGE 信息消息默认JOptionPane.QUESTION_MESSAGE 问题消息JOptionPane.WARNING_MESSAGE 警告消息JOptionPane.ERROR_MESSAGE 错误消息 对话框 class JOptionPaneUse {public JOptionPaneUse() {final JFrame jf new JFrame(测试窗口);jf.setSize(400, 400);jf.setLocationRelativeTo(null);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/** 1. 消息对话框信息消息*/JButton btn01 new JButton(showMessageDialog信息消息);btn01.addActionListener(e - {// 消息对话框无返回, 仅做通知作用JOptionPane.showMessageDialog(jf, 通知信息, 消息标题, JOptionPane.INFORMATION_MESSAGE);});/** 2. 消息对话框警告消息*/JButton btn02 new JButton(showMessageDialog警告消息);btn02.addActionListener(e - {// 消息对话框无返回, 仅做通知作用JOptionPane.showMessageDialog(jf, 警告信息, 消息标题, JOptionPane.WARNING_MESSAGE);});/** 3. 确认对话框*/JButton btn03 new JButton(showConfirmDialog);btn03.addActionListener(e - {/** 返回用户点击的选项, 值为下面三者之一:* 是: JOptionPane.YES_OPTION* 否: JOptionPane.NO_OPTION* 取消: JOptionPane.CANCEL_OPTION* 关闭: JOptionPane.CLOSED_OPTION*/int result JOptionPane.showConfirmDialog(jf, 确认删除, 提示, JOptionPane.YES_NO_CANCEL_OPTION);System.out.println(选择结果: result);});/** 4. 输入对话框文本框输入*/JButton btn04 new JButton(showInputDialog文本框输入);btn04.addActionListener(e - {// 显示输入对话框, 返回输入的内容String inputContent JOptionPane.showInputDialog(jf, 输入你的名字:, 默认内容);System.out.println(输入的内容: inputContent);});/** 5. 输入对话框下拉框选择*/JButton btn05 new JButton(showInputDialog下拉框选择);btn05.addActionListener(e - {Object[] selectionValues new Object[]{香蕉, 雪梨, 苹果};// 显示输入对话框, 返回选择的内容, 点击取消或关闭, 则返回nullObject inputContent JOptionPane.showInputDialog(jf, 选择一项: , 标题,JOptionPane.PLAIN_MESSAGE, null, selectionValues, selectionValues[0]);System.out.println(输入的内容: inputContent);});/** 6. 选项对话框*/JButton btn06 new JButton(showOptionDialog);btn06.addActionListener(e - {// 选项按钮Object[] options new Object[]{香蕉, 雪梨, 苹果};// 显示选项对话框, 返回选择的选项索引, 点击关闭按钮返回-1int optionSelected JOptionPane.showOptionDialog(jf, 请点击一个按钮选择一项, 对话框标题,JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.ERROR_MESSAGE, null,options, // 如果传null, 则按钮为 optionType 类型所表示的按钮也就是确认对话框options[0]);if (optionSelected 0) {System.out.println(点击的按钮: options[optionSelected]);}});// 垂直排列按钮Box vBox Box.createVerticalBox();vBox.add(btn01);vBox.add(btn02);vBox.add(btn03);vBox.add(btn04);vBox.add(btn05);vBox.add(btn06);JPanel panel new JPanel();panel.add(vBox);jf.setContentPane(panel);jf.setVisible(true);} }自定义弹窗 class JDialogUse {public JDialogUse() {final JFrame jf new JFrame(测试窗口);jf.setSize(300, 300);jf.setLocationRelativeTo(null);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);JButton btn new JButton(显示自定义对话框);btn.addActionListener(new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {showCustomDialog(jf, jf);}});JPanel panel new JPanel();panel.add(btn);jf.setContentPane(panel);jf.setVisible(true);}/*** 显示一个自定义的对话框** param owner 对话框的拥有者* param parentComponent 对话框的父级组件*/private static void showCustomDialog(Frame owner, Component parentComponent) {// 创建一个模态对话框final JDialog dialog new JDialog(owner, 提示, true);// 设置对话框的宽高dialog.setSize(250, 150);// 设置对话框大小不可改变dialog.setResizable(false);// 设置对话框相对显示的位置dialog.setLocationRelativeTo(parentComponent);// 创建一个标签显示消息内容JLabel messageLabel new JLabel(对话框消息内容);// 创建一个按钮用于关闭对话框JButton okBtn new JButton(确定);okBtn.addActionListener(e - {// 关闭对话框dialog.dispose();});// 创建对话框的内容面板, 在面板内可以根据自己的需要添加任何组件并做任意是布局JPanel panel new JPanel();// 添加组件到面板panel.add(messageLabel);panel.add(okBtn);// 设置对话框的内容面板dialog.setContentPane(panel);// 显示对话框dialog.setVisible(true);} }2、3 面板 面板也是一个容器但是它不能单独存在只能存在于窗口中一个面板对象代表了一个长方形的区域在这个区域中可以容纳其他组件在程序中通常会使面板来实现一些特殊的布局。 普通面板 public class JPanelUse {public static void main(String[] args) {// 初始化窗口JFrame jFrame new JFrame(面板窗口);jFrame.setVisible(true);jFrame.setSize(400, 400);jFrame.setLocationRelativeTo(null);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 初始化面板采用默认的流式布局或指定布局JPanel jPanel new JPanel(new FlowLayout(FlowLayout.CENTER));// 设置面板大小jPanel.setSize(100, 100);// 设置面板背景颜色jPanel.setBackground(new Color(164, 24, 24));// 将面板添加到窗口jFrame.add(jPanel);} }滚动面板 JScrollPane滚动面板支持水平和垂直滚动视图。文本区域、表格等需要显示较多数据而空间又有限时通常使用 JScrollPane 进行包裹以实现滚动显示。 public class JScrollPaneUse {public JScrollPaneUse() {JFrame jFrame new JFrame(面板窗口);// 创建文本区域组件JTextArea textArea new JTextArea(这是一个文本);// 自动换行textArea.setLineWrap(true);// 设置字体textArea.setFont(new Font(null, Font.PLAIN, 18));// 初始化滚动面板面板/*** 全参构造参数说明* view: 需要滚动显示的视图组件* vsbPolicy: 垂直滚动条的显示策略* ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED // 需要时显示默认* ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER // 从不显示* ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS // 总是显示* hsbPolicy: 水平滚动条的显示策略* ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED // 需要时显示默认* ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER // 从不显示* ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS // 总是显示* 常用方法* 设置滚动显示视图内容组件setViewportView(Component view)* 设置垂直滚动条的显示策略setVerticalScrollBarPolicy(int policy)* 设置水平滚动条的显示策略setHorizontalScrollBarPolicy(int policy)*/JScrollPane jScrollPane new JScrollPane(textArea,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);jFrame.setContentPane(jScrollPane);// 窗口设置为公共代码后面全部省略jFrame.setVisible(true);jFrame.setSize(400, 400);jFrame.setLocationRelativeTo(null);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);} }分隔面板 JSplitPane分隔面板用于分隔两个只能两个组件两个组件通过水平/垂直分隔条分别 左右 或 上下 显示并且可以拖动分隔条调整两个组件显示区域的大小。 class JSplitPaneUse{public JSplitPaneUse() {JFrame jFrame new JFrame(分隔面板窗口);/*** 全参构造参数说明* orientation: 分隔的方向(默认水平)HORIZONTAL_SPLIT水平左右分隔VERTICAL_SPLIT垂直上下分隔* continuousLayout: 拖动分隔条时是否连续重绘组件如果为flase则拖动分隔条停止后才重绘组件。* leftComponent: 左边/上面 显示的组件* rightComponent: 右边/下面 显示的组件* 常用方法* setOrientation(int orientation) 设置分隔的方向水平(左右) 或 垂直(上下) 分隔* setLeftComponent(Component comp)设置 左边/上面 显示的组件* setRightComponent(Component comp)设置 左边/下面 显示的组件* setContinuousLayout(boolean continuousLayout) 设置 拖动分隔条 时是否 连续重绘 组件* setOneTouchExpandable(boolean newValue)分隔条上是否显示快速 折叠/展开 两边组件的小按钮* setDividerSize(int newSize)设置分隔条的大小宽度* setDividerLocation(int location)设置分隔条的位置相对于 左边/顶部 的像素长度*/JSplitPane jSplitPane new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, new JButton(左边按钮), new JButton(右边按钮));jSplitPane.setDividerLocation(200);jFrame.setContentPane(jSplitPane);// 省略公共代码} }选项卡面板 JTabbedPane选项卡面板。它允许用户通过点击给定标题或图标的选项卡在一组组件之间进行切换显示。 class JTabbedPaneUse {public JTabbedPaneUse() {JFrame jFrame new JFrame(选项卡面板窗口);/*** 全参构造参数说明:* tabPlacement: 选项卡标题的位置, 值为 JTabbedPane.TOP/BOTTOM/LEFT/RIGHT, 默认为 TOP* tabLayoutPolicy: 选项卡位置不能放入所有的选项卡时放置选项卡的策略值JTabbedPane.WRAP_TAB_LAYOUT/SCROLL_TAB_LAYOUT* 常用方法* addTab(String 标题, Icon 图标, Component 内容组件, String 提示文本)添加选择项卡* insertTab(String title, Icon icon, Component component, String tip, int index)在指定位置插入选项卡* remove(Component component)移除指定内容控件的选项卡* remove(int index)移除指定位置的选项* setSelectedIndex(int index)设置当前选中的选项卡* getSelectedIndex()获取当前选中的选项卡索引* getSelectedComponent()获取当前选中的选项卡对应的内容组件* setTitleAt(int index, String title)设置 index 位置的选项卡的标题* setIconAt(int index, Icon icon)设置 index 位置的选项卡的图标* setEnabledAt(int index, boolean enabled)设置 index 位置的选项卡是否可用* setComponentAt(int index, Component component)将 index 位置的内容组件设置为 component*/// 初始化一个选项面板默认选项卡在顶部放不下了换行JTabbedPane jTabbedPane new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT);// 创建选项卡jTabbedPane.addTab(选项卡1, new JButton(测试按钮));jTabbedPane.addTab(选项卡2, new JButton(测试按钮));jFrame.setContentPane(jTabbedPane);// 省略公共代码} }3、布局 3.1、流式布局 FlowLayout流式布局管理器按水平方向依次排列放置组件排满一行换下一行继续排列。排列方向左到右 或 右到左取决于容器的componentOrientation属性该属性属于Component它可能的值如下: ComponentOrientation.LEFT_TO_RIGHT默认ComponentOrientation.RIGHT_TO_LEFT 同一行水平方向的组件的对齐方式由 FlowLayout 的align属性确定它可能的值如下: FlowLayout.LEFT : 左对齐FlowLayout.CENTER : 居中对齐默认FlowLayout.RIGHT : 右对齐FlowLayout.LEADING : 与容器方向的开始边对齐例如对于从左到右的方向则与左边对齐FlowLayout.TRAILING : 与容器方向的结束边对齐例如对于从左到右的方向则与右边对齐。 class FlowLayoutUse {public FlowLayoutUse() {JFrame jFrame new JFrame(流式布局窗口);// 创建面板并指定为流式布局JPanel jPanel new JPanel(new FlowLayout(FlowLayout.CENTER));// 创建两个按钮JButton jButton1 new JButton(按钮1);JButton jButton2 new JButton(按钮2);// 将按钮添加到面板中jPanel.add(jButton1);jPanel.add(jButton2);// 将面板添加到窗口中jFrame.setContentPane(jPanel);// 省略公共代码} }3.2、网格布局 GridLayout网格布局管理器它以矩形网格形式对容器的组件进行布置把容器按行列分成大小相等的矩形网格一个网格中放置一个组件组件宽高自动撑满网格。 以行数和总数优先: 通过构造方法或 setRows 和**setColumns** 方法将行数和列数都设置为非零值时指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。因此例如如果指定了三行和两列在布局中添加了九个组件则它们将显示为三行三列。仅当将行数设置为零时指定列数才对布局有效。 class GridLayoutUse {public GridLayoutUse() {JFrame jFrame new JFrame(网格布局窗口);// 创建一个面板并使用网格布局JPanel jPanel new JPanel(new GridLayout(2, 2));// 创建五个按钮测试2行2列超出效果JButton jButton1 new JButton(按钮1);JButton jButton2 new JButton(按钮2);JButton jButton3 new JButton(按钮3);JButton jButton4 new JButton(按钮4);JButton jButton5 new JButton(按钮5);jPanel.add(jButton1);jPanel.add(jButton2);jPanel.add(jButton3);jPanel.add(jButton4);jPanel.add(jButton5);jFrame.setContentPane(jPanel);// 省略公共代码} }3.3、边框布局 BorderLayout边界布局管理器,它把 Container 按方位分为 5 个区域东、西、南、北、中每个区域放置一个组件。 class BorderLayoutUse {public BorderLayoutUse() {JFrame jFrame new JFrame(网格布局窗口);// 创建一个面板并使用边框布局JPanel jPanel new JPanel(new BorderLayout());// 创建五个按钮测试2行2列超出效果JButton jButton1 new JButton(东);JButton jButton2 new JButton(西);JButton jButton3 new JButton(南);JButton jButton4 new JButton(北);JButton jButton5 new JButton(中);jPanel.add(jButton1, BorderLayout.EAST);jPanel.add(jButton2, BorderLayout.WEST);jPanel.add(jButton3, BorderLayout.SOUTH);jPanel.add(jButton4, BorderLayout.NORTH);jPanel.add(jButton5, BorderLayout.CENTER);jFrame.setContentPane(jPanel);// 省略公共代码} }4、组件 4.1、基本组件 标签 JLabel标签主要用于展示 文本 或 图片 也可以同时显示文本和图片。 class JLabelUse {public JLabelUse() {JFrame jFrame new JFrame(标签窗口);JPanel jPanel new JPanel();// 只显示文本的标签JLabel textLabel new JLabel(只显示文本的标签);textLabel.setFont(new Font(null, Font.PLAIN, 25));jPanel.add(textLabel);// 只显示图片的标签JLabel imgLabel new JLabel(new ImageIcon(bj.jpg));jPanel.add(imgLabel);// 同时显示文本和图片的标签水平方向文本在图片中心JLabel jLabel new JLabel(显示文本, new ImageIcon(bj.jpg), SwingConstants.CENTER);jPanel.add(jLabel);jFrame.setContentPane(jPanel);// 省略公共代码} }按钮 class JButtonAndRadioAndCheckBox {public JButtonAndRadioAndCheckBox() {JFrame jFrame new JFrame(标签窗口);JPanel jPanel new JPanel();/*** 普通图片按钮*/JButton jButton new JButton(图片按钮, new ImageIcon(bj.jpg));jButton.addActionListener(e - {System.out.println(图片按钮被点击了);});jPanel.add(jButton);/*** 单选按钮*/// 创建按钮组将单选按钮添加到该组确保只能选择其一ButtonGroup buttonGroup new ButtonGroup();// 创建单选按钮JRadioButton man new JRadioButton(男);JRadioButton woman new JRadioButton(女);// 设置第一个被选中man.setSelected(true);// 将按钮添加到按钮组中buttonGroup.add(man);buttonGroup.add(woman);// 将按钮添加到面板中jPanel.add(man);jPanel.add(woman);/*** 多选按钮*/// 添加多选按钮JCheckBox jCheckBox1 new JCheckBox(香蕉);JCheckBox jCheckBox2 new JCheckBox(苹果);JCheckBox jCheckBox3 new JCheckBox(梨子);JCheckBox jCheckBox4 new JCheckBox(黄瓜);// 添加事件监听添加第一个复选框的状态被改变的监听其他复选框如果需要监听状态改变则可按此方法添加监听jCheckBox1.addChangeListener(e - {// 获取事件源即复选框本身JCheckBox jCheckBox (JCheckBox) e.getSource();System.out.println(jCheckBox.getText() 是否选中: jCheckBox.isSelected());});jCheckBox1.setSelected(true);jPanel.add(jCheckBox1);jPanel.add(jCheckBox2);jPanel.add(jCheckBox3);jPanel.add(jCheckBox4);jFrame.setContentPane(jPanel);// 省略公共代码} }列表 JComboBox下拉框。JComboBox以下列列表的形式展示多个选项用户可以从下拉列表中选择一个值。如果设置JComboBox为可编辑状态除了选择指定的选项值外还允许用户自行输入值自行输入的值索引为-1。 JList列表框。JList 以列表的形式展示多个选项允许用户选择一个或多个选项。其中的选项内容由一个 ListModel 实例来维护。JList 不实现直接滚动需要滚动显示可以结合 JScrollPane 实现滚动效果。 class JComboBoxAndJList {public JComboBoxAndJList() {JFrame jFrame new JFrame(列表窗口);JPanel jPanel new JPanel();JLabel jLabel new JLabel(水果);/*** 下拉框这里的数组列表可以使用VectorString集合进行*/final JComboBoxString jComboBox new JComboBox(new String[]{香蕉, 雪梨, 苹果, 荔枝});// 添加条目选中状态改变的监听器jComboBox.addItemListener(e - {// 只处理选中的状态if (e.getStateChange() ItemEvent.SELECTED) {System.out.println(选中: jComboBox.getSelectedIndex() jComboBox.getSelectedItem());}});jPanel.add(jLabel);jPanel.add(jComboBox);/*** 列表框*/final JListString jList new JList();// 设置一下首选大小jList.setPreferredSize(new Dimension(200, 100));// 允许可间断的多选jList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);// 设置选项数据内部将自动封装成 ListModel 这里的数组列表可以使用VectorString集合进行jList.setListData(new String[]{香蕉, 雪梨, 苹果, 荔枝});// 添加选项选中状态被改变的监听器jList.addListSelectionListener(e - {// 获取所有被选中的选项索引int[] indices jList.getSelectedIndices();// 获取选项数据的 ListModelListModelString listModel jList.getModel();// 输出选中的选项for (int index : indices) {System.out.println(选中: index listModel.getElementAt(index));}System.out.println();});jPanel.add(jList);jFrame.setContentPane(jPanel);// 省略公共代码} }文本框 JTextField文本框。JTextField 用来编辑单行的文本。 JPasswordField密码框。JPasswordField 继承自 JTextField只是显示输入的内容时用特定的字符替换显示例如 * 或 ●用法和 JTextField 基本一致。 JTextArea文本区域。JTextArea 用来编辑多行的文本。JTextArea 除了允许多行编辑外其他基本用法和 JTextField 基本一致。 class JTextFieldAndJPasswordFieldAndJTextAreaUse {public JTextFieldAndJPasswordFieldAndJTextAreaUse() {JFrame jFrame new JFrame(列表窗口);JPanel jPanel new JPanel(new GridLayout(3,1));/*** 文本框*/final JTextField jTextField new JTextField(10);jTextField.setFont(new Font(null, Font.PLAIN, 20));jPanel.add(new JLabel(用户名));jPanel.add(jTextField);/*** 密码框*/final JPasswordField jPasswordField new JPasswordField(32);jPanel.add(new JLabel(密 码));jPanel.add(jPasswordField);/*** 文本域*/// 创建一个 5 行 10 列的文本区域JTextArea jTextArea new JTextArea(5, 10);// 自动换行jTextArea.setLineWrap(true);jPanel.add(new JLabel(文本域));jPanel.add(jTextArea);jFrame.setContentPane(jPanel);// 省略公共代码} }进度条和滑块 JProgressBar进度条。以可视化形式显示某些任务进度的组件进度条中心可显示进度百分比的文本表示形式。一个任务的进度长度未知时可将进度条设置为不确定模式。不确定模式的进度条持续地显示动画来表示正进行的操作。当可以确定任务长度和进度量时则可设置进度条的最大最小值以及更新进度条的进度值将其切换回确定模式。 JSlider滑块。以图形方式在有界区间内通过移动滑块来选择值的组件。滑块可以显示主刻度标记以及主刻度之间的次刻度标记。刻度标记之间的值的个数由 setMajorTickSpacing(int) 和 setMinorTickSpacing(int) 来控制。刻度标记的绘制由 setPaintTicks(boolean) 控制。滑块也可以在固定时间间隔或在任意位置沿滑块刻度打印文本标签。标签的绘制由 setLabelTable(Dictionary) 和 setPaintLabels(boolean) 控制。 PS: 当滑块获得焦点后按键盘上的 上下左右键 也可以滑动滑块。 class JProgressBarAndJSliderUse {public JProgressBarAndJSliderUse() {JFrame jFrame new JFrame(列表窗口);JPanel jPanel new JPanel(new GridLayout(3, 1));/*** 进度条* 全参构造参数说明JProgressBar(int orient, int min, int max)* orient: 进度条的方向SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL默认为水平方向* min: 最小进度值max: 最大进度值* 常用方法* 设置最小进度值、最大进度值和当前进度值setMinimum(int min)setMaximum(int max)setValue(int n)* 获取当前进度值getValue()* 获取当前进度的百分比getPercentComplete()* 是否绘制百分比文本进度条中间显示的百分数setStringPainted(boolean b)* 设置进度条进度是否为不确定模式setIndeterminate(boolean newValue)* 设置进度条的方向SwingConstants.VERTICAL 或 SwingConstants.HORIZONTALsetOrientation(int newOrientation)* 添加进度条的进度改变监听器addChangeListener(ChangeListener l)*/JProgressBar jProgressBar new JProgressBar(0, 100);jProgressBar.setValue(20);jProgressBar.addChangeListener(e - {System.out.println(当前进度值: jProgressBar.getValue() ; 进度百分比: jProgressBar.getPercentComplete());});jPanel.add(jProgressBar);/*** 滑块* 全参构造参数说明JSlider(int orientation, int min, int max, int value)* orientation: 滑块的方向SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL默认为水平方向* min: 滑块的最小值 max: 滑块的最大值* value: 滑块的初始值默认为 最小值 和 最大值 之间的 中间值* 常用方法* 设置滑块的最小值、最大值、当前值setMinimum(int min)setMaximum(int max)setValue(int n)* 获取滑块的当前值getValue()* 设置主刻度标记间隔setMajorTickSpacing(int n)* 设置单个主刻度内的次刻度标记间隔setMinorTickSpacing(int n)* 设置是否绘制刻度线setPaintTicks(boolean b)* 设置是否绘制刻度标签刻度值文本setPaintLabels(boolean b)* 设置是否绘制滑道setPaintTrack(boolean b)* 设置是否颠倒刻度值刻度值从大到小setInverted(boolean b)* 设置滑块是否对齐到刻度。设置为 true则滑块最终只能在有刻度的位置取值即滑块取值不连续setSnapToTicks(boolean b)* 添加滑块的值改变监听器addChangeListener(ChangeListener l)*/JSlider jSlider new JSlider(0, 20, 10);// 设置主刻度间隔jSlider.setMajorTickSpacing(5);// 设置次刻度间隔jSlider.setMinorTickSpacing(1);// 绘制刻度和标签jSlider.setPaintTicks(true);jSlider.setPaintLabels(true);jSlider.addChangeListener(e - {System.out.println(当前值: jSlider.getValue());});jPanel.add(jSlider);jFrame.setContentPane(jPanel);// 省略公共代码} }4.2、复杂组件 文件和颜色选择器 JFileChooser文件选取器。JFileChooser为用户选择文件提供了一种简单的机制包括打开文件和保存文件。 构造方法和常用方法如下 方法功能JFileChooser(String currentDirectoryPath)currentDirectoryPath: 打开文件选取器时默认显示的文件夹默认为用户文件夹JFileChooser(File currentDirectory)currentDirectory: 打开文件选取器时默认显示的文件夹默认为用户文件夹void setCurrentDirectory(File dir)设置默认显示的文件夹void setFileSelectionMode(int mode)设置文件选择模式FILES_AND_DIRECTORIES: 文件和文件夹都可以选其他的二选一void setMultiSelectionEnabled(boolean b)设置是否允许同时选择多个默认为不允许void addChoosableFileFilter(FileFilter filter)添加可供用户选择的文件过滤器void setFileFilter(FileFilter filter)设置默认使用的文件过滤器void setSelectedFile(File file)设置默认被选中的文件File[] getSelectedFiles()获取选择的文件一般在用户选择完文件点击了确认或保存后通过该方法获取选中的文件 class FileSelectedUse {public FileSelectedUse() {JFrame jFrame new JFrame();JPanel jPanel new JPanel();/*** 显示 打开文件 或 保存文件 的对话框线程将被阻塞, 直到选择框被关闭showOpenDialog(Component parent), showSaveDialog(Component parent)* 参数* parent: 文件选取器对话框的父组件, 对话框将会尽量显示在靠近 parent 的中心; 如果传 null, 则显示在屏幕中心。* 返回值* JFileChooser.CANCEL_OPTION: 点击了取消或关闭* JFileChooser.APPROVE_OPTION: 点击了确认或保存* JFileChooser.ERROR_OPTION: 出现错误*/final JTextArea jTextArea new JTextArea(10, 30);jTextArea.setLineWrap(true);jPanel.add(jTextArea);JButton openBtn new JButton(打开);openBtn.addActionListener(e - showFileOpenDialog(jFrame, jTextArea));jPanel.add(openBtn);JButton saveBtn new JButton(保存);saveBtn.addActionListener(e - showFileSaveDialog(jFrame, jTextArea));jPanel.add(saveBtn);jFrame.setContentPane(jPanel);// 省略公共代码}/*** 打开文件* param parent 组件* param msgTextArea 文本域*/private static void showFileOpenDialog(Component parent, JTextArea msgTextArea) {// 创建一个默认的文件选取器JFileChooser fileChooser new JFileChooser();// 设置默认显示的文件夹为当前文件夹fileChooser.setCurrentDirectory(new File(.));// 设置文件选择的模式只选文件、只选文件夹、文件和文件均可选fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);// 设置是否允许多选fileChooser.setMultiSelectionEnabled(true);// 添加可用的文件过滤器FileNameExtensionFilter 的第一个参数是描述, 后面是需要过滤的文件扩展名 可变参数fileChooser.addChoosableFileFilter(new FileNameExtensionFilter(zip(*.zip, *.rar), zip, rar));// 设置默认使用的文件过滤器fileChooser.setFileFilter(new FileNameExtensionFilter(image(*.jpg, *.png, *.gif), jpg, png, gif));// 打开文件选择框线程将被阻塞, 直到选择框被关闭int result fileChooser.showOpenDialog(parent);if (result JFileChooser.APPROVE_OPTION) {// 如果点击了确定, 则获取选择的文件路径File file fileChooser.getSelectedFile();// 如果允许选择多个文件, 则通过下面方法获取选择的所有文件msgTextArea.append(打开文件: file.getAbsolutePath() \n\n);}}/*** 选择文件保存路径* param parent 组件* param msgTextArea 文本域*/private static void showFileSaveDialog(Component parent, JTextArea msgTextArea) {// 创建一个默认的文件选取器JFileChooser fileChooser new JFileChooser();// 设置打开文件选择框后默认输入的文件名fileChooser.setSelectedFile(new File(测试文件.zip));// 打开文件选择框线程将被阻塞, 直到选择框被关闭int result fileChooser.showSaveDialog(parent);if (result JFileChooser.APPROVE_OPTION) {// 如果点击了保存, 则获取选择的保存路径File file fileChooser.getSelectedFile();msgTextArea.append(保存到文件: file.getAbsolutePath() \n\n);}} }JColorChooser颜色选取器。JColorChooser提供一个用于允许用户操作和选择颜色的控制器对话框。 class ColorSelectedUse {public ColorSelectedUse() {JFrame jFrame new JFrame();JPanel jPanel new JPanel();final JLabel jLabel new JLabel();jLabel.setPreferredSize(new Dimension(150, 150));jLabel.setOpaque(true);jPanel.add(jLabel);JButton jButton new JButton(选择颜色);jButton.addActionListener(e - {/*** 显示一个颜色选取器对话框线程将被阻塞, 直到对话框被关闭* 参数说明:* component: 对话框的父组件, 对话框将紧靠 component 的中心显示; 如果传 null, 则对话框显示在屏幕中心。* title: 对话框标题。* initialColor: 初始选中的颜色; 如果传 null, 则默认为非透明白色。* 返回值* 返回选择的颜色; 如果点击了取消或关闭, 则返回 null。*/Color color JColorChooser.showDialog(jFrame, 选取颜色, null);// 如果用户取消或关闭窗口, 则返回的 color 为 nullif (color null) {return;}// 把选取的颜色设置为标签的背景jLabel.setBackground(color);// 获取颜色的 ARGB 各个分量值int alpha color.getAlpha();int red color.getRed();int green color.getGreen();int blue color.getBlue();jLabel.setText(A String.format(%02x, alpha) , String.format(#%02x%02x%02x, red, green, blue));});jPanel.add(jButton);jFrame.setContentPane(jPanel);// 省略公共代码} }菜单栏和工具栏 JMenuBar菜单栏。菜单栏组件添加到 JFrame 窗口后在窗口的内容显示区域的顶部出现。实现一个菜单栏主要涉及三种类: JMenuBar表示一个菜单栏。JMenu表示菜单栏上的一个一级菜单。JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem表示一级菜单下的一个子菜单项三者分别表示 普通的子菜单、带复选框的子菜单、带单选按钮的子菜单。 PS: JMenu 继承自 JMenuItem所以一个 JMenu 也可以当做是一个二级子菜单项通过 JMenu 和 JMenuItem 之间的嵌套可实现多级子菜单效果。 构造参数和常用方法如下 类方法功能JMenuItemvoid setText(String text)设置菜单显示的文本JMenuItemvoid setIcon(Icon defaultIcon)设置菜单显示的图标全参构造JMenuItem(String text, Icon icon)text: 菜单显示的文本icon: 菜单显示的图标JMenuItemvoid setMnemonic(int mnemonic)设置菜单的键盘助记符JMenuItemvoid setAccelerator(KeyStroke keyStroke)设置修改键使用键盘快捷键直接触发菜单项的动作JMenuItemvoid addActionListener(ActionListener l)添加菜单被点击的监听器JMenuItemvoid setActionCommand(String actionCommand)可以再监听器回调时通过命令名称区别是哪个菜单项触发的动作。JMenuJMenuItem add(JMenuItem menuItem)添加子菜单到JMenu中JMenuvoid addSeparator()添加一个子菜单分割线 class JMenuBarUse{public JMenuBarUse() {JFrame jFrame new JFrame();JPanel jPanel new JPanel();// 创建一个菜单栏JMenuBar jMenuBar new JMenuBar();// 创建一级菜单JMenu fileMenu new JMenu(文件);JMenu editMenu new JMenu(编辑);// 将一级菜单添加到菜单栏jMenuBar.add(fileMenu);jMenuBar.add(editMenu);// 创建文件菜单的子菜单JMenuItem openMenuItem new JMenuItem(打开);JMenuItem newMenuItem new JMenuItem(新建);fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);jPanel.add(jMenuBar);// 省略公共代码} }JToolBar工具栏。JToolBar 提供了一个用来显示常用控件的容器组件。 对于大多数的外观用户可以将工具栏拖到其父容器四“边”中的一边并支持在单独的窗口中浮动显示。为了正确执行拖动建议将 JToolBar 实例添加到容器四“边”中的一边其中容器的布局管理器为 BorderLayout并且不在其他四“边”中添加任何子级。 构造方法和常用方法如下 方法功能JToolBar(String name, int orientation)name: 工具栏名称悬浮显示时为悬浮窗口的标题。orientation: 工具栏方向默认水平Component add(Component comp)添加 工具组件 到 工具栏void addSeparator(Dimension size)添加 分隔符组件 到 工具栏Component getComponentAtIndex(int index)获取工具栏中指定位置的组件包括分隔符void setFloatable(boolean b)设置工具栏是否可拖动void setOrientation(int o)设置工具栏方向值为 SwingConstants.HORIZONTAL 或 SwingConstants.VERTICALvoid setMargin(Insets m)设置工具栏边缘和其内部工具组件之间的边距内边距void setBorderPainted(boolean b)是否需要绘制边框 class JToolBarUse{public JToolBarUse() {JFrame jFrame new JFrame();JPanel jPanel new JPanel();// 创建一个工具栏JToolBar jToolBar new JToolBar(测试工具栏);JButton jButton new JButton(按钮);jToolBar.add(jButton);jPanel.add(jToolBar);// 省略公共代码} }5、事件 5.1、鼠标监听事件 class MouseListenerUse {public MouseListenerUse() {JFrame jFrame new JFrame(鼠标监听);JPanel jPanel new JPanel();/*** 鼠标监听器*/jPanel.addMouseListener(new MouseAdapter() {Overridepublic void mouseEntered(MouseEvent e) {System.out.println(鼠标进入组件区域);}Overridepublic void mouseExited(MouseEvent e) {System.out.println(鼠标离开组建区域);}Overridepublic void mousePressed(MouseEvent e) {// 获取按下的坐标相对于组件System.out.println(相对组件 e.getPoint() 横坐标 e.getX() , 纵坐标 e.getY());// 获取按下的坐标相对于屏幕System.out.println(相对屏幕 e.getLocationOnScreen() 横坐标 e.getXOnScreen() , 纵坐标 e.getYOnScreen());}Overridepublic void mouseReleased(MouseEvent e) {System.out.println(鼠标释放);}Overridepublic void mouseClicked(MouseEvent e) {// 鼠标在组件区域内按下并释放中间没有移动光标才识别为被点击System.out.println(鼠标点击);}});/*** 鼠标移动/拖动监听器*/jPanel.addMouseMotionListener(new MouseMotionAdapter() {Overridepublic void mouseDragged(MouseEvent e) {// 鼠标保持按下状态移动即为拖动System.out.println(鼠标拖动);}Overridepublic void mouseMoved(MouseEvent e) {System.out.println(鼠标移动);}});/*** 鼠标滚轮监听器*/jPanel.addMouseWheelListener(new MouseWheelListener() {Overridepublic void mouseWheelMoved(MouseWheelEvent e) {// e.getWheelRotation() 为滚轮滚动多少的度量System.out.println(mouseWheelMoved: e.getWheelRotation());}});// 省略公共代码} }5.2、键盘监听事件 组件监听键盘的按键该组件必须要获取到焦点。 如果一个窗口内没有可获取焦点的组件一般打开窗口后焦点为窗口所有可以把键盘监听器设置到窗口JFrame身上。 如果窗口内还有其他组件可获取焦点例如按钮、文本框窗口打开后焦点会被内部组件获得如果想要在窗口打开期间都能监听键盘按键可以为所有可获得焦点的组件都设置一个键盘监听器。 class KeyListenerUse{public KeyListenerUse() {JFrame jFrame new JFrame(键盘监听);jFrame.addKeyListener(new KeyAdapter() {Overridepublic void keyPressed(KeyEvent e) {// 获取键值和 KeyEvent.VK_XXXX 常量比较确定所按下的按键System.out.println(按下: e.getKeyCode() 键值为 e.getKeyCode());}Overridepublic void keyTyped(KeyEvent e) {// e.getKeyChar() 获取键入的字符System.out.println(键入: e.getKeyChar());}Overridepublic void keyReleased(KeyEvent e) {System.out.println(释放: e.getKeyCode());}});jFrame.setVisible(true);} }5.3、窗口监听事件 窗口监听器只有窗口类组件支持例如 JFrame、JDialog。目前经过测试使用最多的莫过于窗口关闭和窗口激活。 class WindowListenerUse{public WindowListenerUse() {JFrame jFrame new JFrame(窗口监听);jFrame.addWindowListener(new WindowAdapter() {Overridepublic void windowClosing(WindowEvent e) {System.out.println(窗口被关闭了);}Overridepublic void windowActivated(WindowEvent e) {System.out.println(窗口被激活了);}});jFrame.setVisible(true);} }Java GUI setSize()、setPreferredSize()的区别 setSize()、setPreferredSize()都可以设置组件的大小但二者的使用有所不同。 1、setSize()的使用方式 setSize(int width,int height)setSize(Dimension d) 2、etPreferredSize()的使用方式 setSize(Dimension d) setPreferredSize()是设置首选尺寸。一般情况下 如果该组件受布局管理器管理使用默认的也算需要使用setPreferredSize()设置尺寸setSize()无效。如果该组件不受布局管理器管理需要使用setSize()setPreferredSize()无效。 比如 JFrame设置了布局管理器往JFrame中添加一个JLabelJLabel受布局管理器管理需要使用setPreferredSize()setSize()无效。受指的是JLabel不是布局管理器所在的容器JFrameJFrame没有受到布局管理器的管理要使用setSize()。 是说该组件受到布局管理器的管理不是说该组件本身设置了布局管理器。 3、Dimension的使用方式 构造函数 Dimension(int width,int height) //只能是int 不能是double 常用方法 getWidth/Height() //返回值均为double。也可直接访问属性width、height。setSize(int width,int height) //不能单独设置其中一个setSIze(double width,double height)
http://www.zqtcl.cn/news/96802/

相关文章:

  • 知名营销网站开发高端网站建设如何收费
  • 佛山网站建设邓先生沈阳做网站找黑酷科技
  • 网站建设 排名下拉请教个人主页网站怎么做啊
  • 揭阳网站制作教程安阳seo公司
  • 网站运营管理教材wordpress 评论框插件
  • 免费做手机网站有哪些网页怎么制作链接
  • 浙江省建设工程质量协会网站wordpress只在首页设置关键词
  • 网站开发选题申请理由东莞网站建议
  • 阿里巴巴国际站运营培训商务网站的建设步骤
  • 有哪几个平台做网站专业的网站建设流程
  • 网站的回到顶部怎么做字体艺术设计在线生成
  • 物流营销型网站案例分析渭南专业做网站
  • 织梦音乐网站接推广任务的平台
  • 网站建设设计团队平面设计主要做什么ui
  • 站长工具seo综合查询广告和京东一样的网站
  • 柳州做网站的企业做黑彩网站
  • 商城网站开发那家好网站建设知识平台
  • 莱州网站定制flash网站cms
  • 经营范围里的网站建设直播系统程序
  • 58同城类似的网站开发wordpress 地方生活
  • wordpress 七牛ossseo系统
  • 郑州做网站 熊掌号太原今天最新通知
  • 文章网站如何与压力做足球比赛直播间在线观看
  • 越秀网站建设优化呼和浩特住房和城乡建设部网站
  • 河南省路桥建设集团网站建网站公司郑州
  • 海沧做网站深圳外贸招聘
  • 网站建设置顶多少钱翻译成英文
  • 柳州正规网站制作公司哪家好怎么学好网站建设
  • 德宏做网站网站的设计思路范文
  • 自己的电脑做网站服务器深圳福田有什么好玩的地方