mangler.java
来自「This is processing for java examples.」· Java 代码 · 共 95 行
JAVA
95 行
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- *//* Part of the Processing project - http://processing.org Copyright (c) 2008 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*/package com.transformers.supermangletron;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JOptionPane;import processing.app.Editor;import processing.app.tools.Tool;/** * Example Tools menu entry. */public class Mangler implements Tool { Editor editor; public void init(Editor editor) { this.editor = editor; } public String getMenuTitle() { return "Mangle Selection"; } public void run() { String sketchName = editor.getSketch().getName(); Object[] options = { "Yes, please", "No, thanks" }; int result = JOptionPane.showOptionDialog(editor, "Is " + sketchName + " ready for destruction?", "Super Mangle Tron", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if (result == JOptionPane.YES_OPTION) { mangleSelection(); } } protected void mangleSelection() { if (editor.isSelectionActive()) { String selection = editor.getSelectedText(); char[] stuff = selection.toCharArray(); // Randomly swap a bunch of characters in the text for (int i = 0; i < stuff.length / 10; i++) { int a = (int) (Math.random() * stuff.length); int b = (int) (Math.random() * stuff.length); if (stuff[a] == '\n' || stuff[b] == '\n') { continue; // skip newline characters } stuff[a] = selection.charAt(b); stuff[b] = selection.charAt(a); } editor.startCompoundEdit(); editor.setSelectedText(new String(stuff)); editor.stopCompoundEdit(); editor.statusNotice("Now that feels better, doesn't it?"); } else { editor.statusError("No selection, no dice."); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?