Java swing 常用代码片段:
(1)复制全部
JButton copyAll=new JButton("复制全部"); copyAll.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String content=area2.getText(); if(ValueWidget.isNullOrEmpty(content)){ return; } WindowUtil.setSysClipboardText(content); } }); public static void setSysClipboardText(String writeMe) { Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable tText = new StringSelection(writeMe); clip.setContents(tText, null); }
获取一个"复制"按钮
/*** * Get a copy button. * * @param tf * @return */ public static JButton getCopyBtn(final JTextComponent ta) { JButton copyBtn = new JButton(MenuUtil2.ACTION_STR_COPY); copyBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(ValueWidget.isNullOrEmpty(ta)){ ToastMessage toastMessage = new ToastMessage("文本框为null,请确认文本框是否已经创建",3000,Color.red); toastMessage.setVisible(true); }else{ String input = ta.getText(); if (!ValueWidget.isNullOrEmpty(input)) { WindowUtil.setSysClipboardText(input); } } } }); return copyBtn; }
(2)黏贴
btnPasteAfterDel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String content = WindowUtil.getSysClipboardText(); if (ValueWidget.isNullOrEmpty(content)) { return; } getTextArea().setText(content); } });
获取一个黏贴按钮:
/*** * Get a paste button. * * @param ta * @return */ public static JButton getPasteBtn(final JTextComponent ta) { JButton copyBtn = new JButton(MenuUtil2.ACTION_STR_PASTE); copyBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String input = WindowUtil.getSysClipboardText(); if (!ValueWidget.isNullOrEmpty(input)) { ta.setText(input); } } }); return copyBtn; }
(3)给JTextArea 增加快捷键
final JTextArea ta=getTextArea(); KeyListener[] keyListeners=ta.getKeyListeners(); ta.addKeyListener(new KeyAdapter() { private long lastTimeMillSencond; private long lastTimeMillSencondCtrl; private long lastTimeMillSencondEsc; @Override public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_A/*全选*/ ||e.getKeyCode() == KeyEvent.VK_C/* 复制 */ ||e.getKeyCode() == KeyEvent.VK_F/*格式化*/ ||e.getKeyCode() == KeyEvent.VK_Z/*剪切*/ ||e.getKeyCode() == KeyEvent.VK_V){ // System.out.println(e.getKeyCode()); lastTimeMillSencondCtrl=0; } if(e.isShiftDown()){ if(lastTimeMillSencond==0){ lastTimeMillSencond=System.currentTimeMillis(); }else{ long currentTime=System.currentTimeMillis(); long delta=currentTime-lastTimeMillSencond; if(MenuUtil2.isDoubleClick(delta)){ // System.out.println("双击Shift"); lastTimeMillSencond=0; String selectContent = ta.getSelectedText(); if(ValueWidget.isNullOrEmpty(selectContent)){ return; } selectContent=SystemHWUtil.deleteQuotes(selectContent); ta.replaceSelection(selectContent); }else{ lastTimeMillSencond=System.currentTimeMillis(); } } }else if(e.isControlDown()&&(e.getKeyCode() != KeyEvent.VK_V/*86 */&&e.getKeyCode() != KeyEvent.VK_Z/*90*/ &&e.getKeyCode() != KeyEvent.VK_C/*67*/&&e.getKeyCode() != KeyEvent.VK_A/*65*/)){//双击Ctrl // System.out.println(e.getKeyCode()); // System.out.println("lastTimeMillSencondCtrl:"+lastTimeMillSencondCtrl); if(lastTimeMillSencondCtrl==0){ lastTimeMillSencondCtrl=System.currentTimeMillis(); }else{ long currentTime=System.currentTimeMillis(); long delta=currentTime-lastTimeMillSencondCtrl; // System.out.println(lastTimeMillSencondCtrl+" "+currentTime+" "+delta); if(MenuUtil2.isDoubleClick(delta)){ System.out.println("双击Ctrl"); lastTimeMillSencondCtrl=0; String selectContent = ta.getSelectedText(); if(ValueWidget.isNullOrEmpty(selectContent)){ return; } quotesEscape(ta,false); }else{ lastTimeMillSencondCtrl=System.currentTimeMillis(); } } }else if(e.getKeyCode() == KeyEvent.VK_ESCAPE){ if(lastTimeMillSencondEsc==0){ lastTimeMillSencondEsc=System.currentTimeMillis(); }else{ long currentTime=System.currentTimeMillis(); if(MenuUtil2.isDoubleClick(currentTime-lastTimeMillSencondEsc)){ // System.out.println("双击Esc"); lastTimeMillSencondEsc=0; String content = ta.getText(); if(ValueWidget.isNullOrEmpty(content)){ return; } boolean isEditable=ta.isEditable(); ta.setEditable(!isEditable); }else{ lastTimeMillSencondEsc=System.currentTimeMillis(); } } } } }); ta.requestFocus();
MenuUtil2.isDoubleClick 实现如下:
/*** * 通过时间间隔来判断是否是双击(不是鼠标,是键盘) * @param delta * @return */ public static boolean isDoubleClick(long delta){ return (delta<300&&delta>100); }
(4)使JTextArea 自动换行
resultTextPane = new AssistPopupTextArea(); resultTextPane.setLineWrap(true); resultTextPane.setWrapStyleWord(true);
(5)设置表格数据
private void setTableData2(Object[][] datas) { DefaultTableModel model = new DefaultTableModel(datas, columnNames); parameterTable_1.setModel(model); this.parameterTable_1.setRowHeight(30); rendTable(); }
(6)获取表格的数据
/*** * 获取表格中的请求要素 * * @return */ protected Object[][] getParameter4Table(){ TableModel model= parameterTable_1.getModel(); int rowCount = model.getRowCount();//参数的个数 int columnCount=model.getColumnCount(); Object[][] data2 = new Object[rowCount][]; for (int rowIndex = 0; rowIndex< rowCount; rowIndex++) { if (!ValueWidget.isNullOrEmpty(model.getValueAt(rowIndex, 0))) { Object[] objs = new Object[columnCount]; for (int j = 0; j < columnCount; j++) { Object val = model.getValueAt(rowIndex, j); if (!ValueWidget.isNullOrEmpty(val)) { objs[j] = val; } } data2[rowIndex] = objs; } } System.out.println(data2.length); return data2; }
(7)获取组件对话框中的数据
String newName = JOptionPane.showInputDialog(ta.getParent()/*应该是JFrame*/, "请输入图片高度:", ta.getHeight()); if (newName != null) { if (newName.equals("")) { ToastMessage toastMessage = new ToastMessage("file name can not be empty.",3000,Color.red); toastMessage.setVisible(true); return; } specifiedHeight=Integer.parseInt(newName); }else{/* indicate [cancel] button has been clicked */ ToastMessage toastMessage = new ToastMessage("已取消",2000,Color.red); toastMessage.setVisible(true); return; }
(8)一个简单的模态窗口(对话框)
package com.yunma.dialog; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.border.EmptyBorder; import com.common.util.SystemHWUtil; import com.string.widget.util.ValueWidget; import com.swing.component.AssistPopupTextArea; import com.swing.component.AssistPopupTextField; import com.swing.component.ComponentUtil; import com.swing.dialog.GenericDialog; public class GenerateMD5Dialog extends GenericDialog { private static final long serialVersionUID = -4151740071609032069L; private JPanel contentPane; private AssistPopupTextField sourceTxt; private JComboBox<String> encodingComboBox; private AssistPopupTextArea resultTextArea; /** * Launch the application. *//* public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { GenerateMD5Dialog frame = new GenerateMD5Dialog(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }*/ /** * Create the frame. */ public GenerateMD5Dialog(boolean modal) { setTitle("生成MD5值"); setModal(modal); setLoc(450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); GridBagLayout gbl_contentPane = new GridBagLayout(); gbl_contentPane.columnWidths = new int[]{0, 0, 0, 0}; gbl_contentPane.rowHeights = new int[]{0, 0, 0, 0, 0}; gbl_contentPane.columnWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE}; gbl_contentPane.rowWeights = new double[]{0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; contentPane.setLayout(gbl_contentPane); JLabel label = new JLabel("原文本"); GridBagConstraints gbc_label = new GridBagConstraints(); gbc_label.insets = new Insets(0, 0, 5, 5); gbc_label.gridx = 0; gbc_label.gridy = 0; contentPane.add(label, gbc_label); sourceTxt = new AssistPopupTextField(); GridBagConstraints gbc_sourceTxt = new GridBagConstraints(); gbc_sourceTxt.insets = new Insets(0, 0, 5, 0); gbc_sourceTxt.fill = GridBagConstraints.HORIZONTAL; gbc_sourceTxt.gridx = 2; gbc_sourceTxt.gridy = 0; contentPane.add(sourceTxt, gbc_sourceTxt); sourceTxt.setColumns(10); JLabel label_1 = new JLabel("文件编码"); GridBagConstraints gbc_label_1 = new GridBagConstraints(); gbc_label_1.insets = new Insets(0, 0, 5, 5); gbc_label_1.gridx = 0; gbc_label_1.gridy = 1; contentPane.add(label_1, gbc_label_1); encodingComboBox = new JComboBox<String>(); GridBagConstraints gbc_encodingComboBox = new GridBagConstraints(); gbc_encodingComboBox.insets = new Insets(0, 0, 5, 0); gbc_encodingComboBox.fill = GridBagConstraints.HORIZONTAL; gbc_encodingComboBox.gridx = 2; gbc_encodingComboBox.gridy = 1; contentPane.add(encodingComboBox, gbc_encodingComboBox); //文件的编码,window里面一般是GBK,linux中一般是UTF-8 encodingComboBox.addItem(SystemHWUtil.EMPTY); encodingComboBox.addItem(SystemHWUtil.CHARSET_UTF); encodingComboBox.addItem(SystemHWUtil.CHARSET_GBK); encodingComboBox.addItem(SystemHWUtil.CHARSET_GB2312); encodingComboBox.addItem(SystemHWUtil.CHARSET_ISO88591); //设置默认选中的项 encodingComboBox.setSelectedIndex(0); JPanel panel = new JPanel(); GridBagConstraints gbc_panel = new GridBagConstraints(); gbc_panel.insets = new Insets(0, 0, 5, 0); gbc_panel.gridwidth = 3; gbc_panel.fill = GridBagConstraints.BOTH; gbc_panel.gridx = 0; gbc_panel.gridy = 2; contentPane.add(panel, gbc_panel); JButton generateMDbutton = new JButton("生成"); generateMDbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String inputText=sourceTxt.getText(); String charset=getSelectedItem4ComboBox(encodingComboBox); if(ValueWidget.isNullOrEmpty(charset)){ charset=SystemHWUtil.CURR_ENCODING; } try { String md5 = SystemHWUtil.getMD5(inputText,charset); resultTextArea.setText(md5); } catch (NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } } }); panel.add(generateMDbutton); resultTextArea = new AssistPopupTextArea(); JButton btnCopy = ComponentUtil.getCopyBtn(resultTextArea); panel.add(btnCopy); JScrollPane scrollPane = new JScrollPane(); GridBagConstraints gbc_scrollPane = new GridBagConstraints(); gbc_scrollPane.gridwidth = 3; gbc_scrollPane.fill = GridBagConstraints.BOTH; gbc_scrollPane.gridx = 0; gbc_scrollPane.gridy = 3; contentPane.add(scrollPane, gbc_scrollPane); //结果文本域 resultTextArea.setLineWrap(true); resultTextArea.setWrapStyleWord(true); resultTextArea.setEditable(false); scrollPane.setViewportView(resultTextArea); } }
调用:
if (command.equals(MenuUtil2.ACTION_CREATE_MD5)) { GenerateMD5Dialog generateMD5Dialog=new GenerateMD5Dialog(true/*是否是模态*/); generateMD5Dialog.setVisible(true); }
(9)弹出选择文件对话框
private void chooseDestFile(JTextArea ta,String picFormat){ JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); File selectedFile=new File("C:\\Users\\Administrator\\Pictures\\"+TimeHWUtil.formatDate(new Date(), "yyyyMM")); //home目录应该动态获取 if(!ValueWidget.isNullOrEmpty(selectedFile)){ chooser.setSelectedFile(selectedFile); } chooser.setName("二维码."+picFormat); FileNameExtensionFilter filter = new FileNameExtensionFilter( "picture Files", picFormat, "二维码"); chooser.setFileFilter(filter); chooser.setDialogType(JFileChooser.SAVE_DIALOG); chooser.setControlButtonsAreShown(true); chooser.setDialogTitle("保存二维码"); // chooser.setVisible(true); int result = chooser.showSaveDialog(ta); System.out.println("New file:" + result); if (result == JOptionPane.OK_OPTION) { selectedFile = chooser.getSelectedFile(); if(! SystemHWUtil.isHasSuffix(selectedFile)){ selectedFile=new File(selectedFile.getAbsolutePath()+ SystemHWUtil.ENGLISH_PERIOD+picFormat); } ImageHWUtil.genericImage(ta, selectedFile, picFormat); System.out.println("select file:" + selectedFile); } }
(10)在表格上增加菜单
private MouseInputListener getMouseInputListener(final JTable jTable) { return new MouseInputListener() { public void mouseClicked(MouseEvent e) { processEvent(e); } /*** * //in order to trigger Left-click the event */ public void mousePressed(MouseEvent e) { processEvent(e);// is necessary!!! } public void mouseReleased(MouseEvent e) { // processEvent(e); if (e.getButton() == MouseEvent.BUTTON3) {// right click JPopupMenu popupmenu = new JPopupMenu(); JMenuItem runM = new JMenuItem(ACTION_COMMAND_RUN); JMenuItem copyParameterM = new JMenuItem(ACTION_COMMAND_COPY_REQUEST_PARAMETER); JMenuItem copyResponseM = new JMenuItem(ACTION_COMMAND_COPY_RESPONSE); JMenuItem cleanResultM = new JMenuItem("清空结果"); // JMenuItem editM=new JMenuItem("edit"); MyMenuActionListener yMenuActionListener = new MyMenuActionListener(); runM.addActionListener(yMenuActionListener); copyParameterM.addActionListener(yMenuActionListener); copyResponseM.addActionListener(yMenuActionListener); cleanResultM.addActionListener(yMenuActionListener); popupmenu.add(runM); popupmenu.add(copyParameterM); popupmenu.add(copyResponseM); popupmenu.add(cleanResultM); popupmenu.show(e.getComponent(), e.getX(), e.getY()); } } public void mouseEntered(MouseEvent e) { processEvent(e); } public void mouseExited(MouseEvent e) { processEvent(e); } public void mouseDragged(MouseEvent e) { processEvent(e); } public void mouseMoved(MouseEvent e) { processEvent(e); } private void processEvent(MouseEvent e) { // Right-click on if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) { // System.out.println(e.getModifiers()); // System.out.println("Right-click on"); int modifiers = e.getModifiers(); modifiers -= MouseEvent.BUTTON3_MASK; modifiers |= MouseEvent.BUTTON1_MASK; MouseEvent ne = new MouseEvent(e.getComponent(), e.getID(), e.getWhen(), modifiers, e.getX(), e.getY(), e.getClickCount(), false); jTable.dispatchEvent(ne);// in order to trigger Left-click // the event } } }; }
调用:
private void rendTable(){ parameterTable_1.getColumnModel().getColumn(2) .setCellEditor(new MyButtonEditor()); parameterTable_1.getColumnModel().getColumn(2) .setCellRenderer(new MyButtonRender()); final MouseInputListener mouseInputListener = getMouseInputListener(parameterTable_1);// parameterTable_1.addMouseListener(mouseInputListener); }
参考:
http://hw1287789687.iteye.com/blog/2230780
http://hw1287789687.iteye.com/blog/2227989
http://hw1287789687.iteye.com/blog/2173977
http://hw1287789687.iteye.com/blog/2003105
相关推荐
本资源"利用Swing开发的JAVA常用组件代码fprod-common-7.3.rar"提供了使用Swing开发的一些常见组件的示例代码,这将有助于理解和实践如何在Java程序中创建和操作用户界面。 Swing提供了许多组件,它们是构建用户...
以上内容为我们从提供的代码片段中提取出的主要知识点。通过对这些知识点的学习和掌握,开发者可以更好地利用Java Swing框架来构建功能丰富的桌面应用。此外,Swing还提供了很多其他高级特性,如表格数据处理、图像...
标题中提到的“JavaSwing编程”,指的是在Java编程语言中,使用Swing库进行图形用户界面(GUI)编程的一种实践。Swing是Java的一个工具包,用于开发Java应用程序的图形用户界面。它提供了一套丰富的组件,可以让...
这个"Java开发常用代码全集.zip"压缩包显然包含了Java编程中常用的代码片段和示例,对于初学者和经验丰富的开发者来说都是一个宝贵的资源。让我们深入探讨一下这个资源可能涵盖的一些关键知识点。 1. **基础语法**...
在Java编程中,窗口风格、窗口居中、组件拖动、文件路径处理和设置...对于"Java收集的代码段1(待续)常用代码段"这个主题,后续可能还会涉及到更多高级特性和实践技巧,持续学习和实践是提升Java GUI编程能力的关键。
"Java常用代码大全.zip"这个压缩包很可能包含了各种常见的Java编程示例和实用代码片段,帮助开发者快速解决日常开发中遇到的问题。这个文档,"Java常用代码大全.doc",可能是一个详细的指南,涵盖了Java开发中的各种...
在Java编程语言中,开发者经常会遇到各种各样的问题,而解决这些问题往往需要高效且实用的代码片段。"100多个非常有用的Java功能代码"集合就是这样一个资源库,它包含了大量经过验证、优化的代码示例,可以帮助...
虽然代码片段并不完整,但从已有的部分可以看出它具有良好的可扩展性和可维护性。对于初学者来说,这是一个很好的学习Swing GUI编程的例子。通过阅读和理解这个程序,可以进一步掌握Swing组件的使用方法以及如何处理...
"很实用的Java常用代码"这个压缩包文件显然包含了大量在日常开发中经常用到的代码片段,旨在帮助开发者提高效率,解决常见问题。下面,我们将详细探讨一些Java编程中的关键知识点。 1. 类与对象:Java是面向对象的...
- **示例代码片段:** ```java import javax.swing.*; public class SimpleSwingApp { public static void main(String[] args) { SwingUtilities.invokeLater(() -> { createAndShowGUI(); }); } private...
从给定的文件信息中,我们可以提取到关于Java编程语言中...综上所述,这段Java代码片段不仅展示了如何使用Swing库构建GUI,还涉及了事件处理和数学计算的基本原理,是学习Java图形界面编程和计算器应用开发的宝贵资源。
虽然代码片段中没有具体的实现,但是根据文件描述中的信息,我们可以推测程序中可能有加载背景图片的功能。这可以通过Swing中的`JLabel`或`JPanel`来实现,并使用`setIcon`方法来设置图片。 ### 总结 这个Java时钟...
- **Copy**:复制选定的文件或代码片段。 - **Paste**:粘贴之前复制的内容。 - **Delete**:删除选定的文件或代码。 - **Properties**:查看和修改项目的属性设置。 ### Java 构建路径与库管理 - **Java Build ...
**代码片段**: ```java public class Application { public static void main(String[] args) { new MyFrame("对话框实践"); } } ``` **知识点**: - **主类**: `Application` 是程序的入口点。 - **主方法**: ...
### Java经典代码知识点详解 #### 一、概述 在IT领域中,Java作为一种广泛使用的编程语言,其丰富的类库和强大的功能支持了多种应用场景。...希望本文能够帮助读者更好地理解和运用Java的经典代码片段。
文件 "2011最新整理java经典代码.doc" 可能是一个Microsoft Word文档,里面包含了精心编排的Java代码片段和相关的解释说明。 在Java编程中,经典代码通常涉及以下几个核心概念: 1. **基础语法**:包括数据类型...
在本例中,我们将通过分析提供的代码片段来了解以下知识点: 1. **Swing的基本概念** 2. **使用`JFrame`创建窗口** 3. **设置窗口属性** 4. **使用线程执行GUI操作** 5. **监听器与事件处理** #### Swing 基本概念...
由于文件内容中的一些代码片段被截断了,并且存在OCR识别错误,完整的实现逻辑和细节无法完全展现。然而,上述知识点提供了文档中Java Swing通讯录应用程序开发的核心内容。开发者通过这些知识点,可以构建和理解...
"源码"标签明确指出我们将看到的是可读的、可学习的代码片段,这对于初学者和经验丰富的开发者来说都是宝贵的教育资源。通过阅读和理解这些代码,开发者可以提升自己的编程技巧,学习如何写出更优雅、更高效的Java...