⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textbounddemo.java

📁 帮助你系统进入JAVA的学习中来
💻 JAVA
字号:
/* * @(#)TextBoundDemo.java	1.1 96/11/23 * * (C) Copyright Taligent, Inc. 1996 - All Rights Reserved * (C) Copyright IBM Corp. 1996 - All Rights Reserved * * Portions copyright (c) 1996 Sun Microsystems, Inc. All Rights Reserved. * *   The original version of this source code and documentation is copyrighted * and owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These * materials are provided under terms of a License Agreement between Taligent * and Sun. This technology is protected by multiple US and International * patents. This notice and attribution to Taligent may not be removed. *   Taligent is a registered trademark of Taligent, Inc. * * Permission to use, copy, modify, and distribute this software * and its documentation for NON-COMMERCIAL purposes and without * fee is hereby granted provided that this copyright notice * appears in all copies. Please refer to the file "copyright.html" * for further important copyright and licensing information. * * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. * */import java.applet.Applet;import java.awt.event.*;import java.awt.*;import java.util.*;import java.text.*;public class TextBoundDemo extends DemoApplet{    public static void main(String argv[]) {        DemoApplet.showDemo(new TextBoundFrame(null));    }    public Frame createDemoFrame(DemoApplet applet) {        return new TextBoundFrame(applet);    }}class TextBoundFrame extends Frame implements WindowListener, ItemListener , KeyListener{	private static final String creditString =		"v1.1a9, Demo";	private static final String copyrightString =		"";	private static final String copyrightString2 =		"";	private static final int FIELD_COLUMNS = 45;    private static final Font choiceFont = null;    private static final boolean DEBUG = false;    private DemoApplet applet;    final String right = "-->";    final String left = "<--";	private BreakIterator enum;    TextArea text;    Choice bound;    public TextBoundFrame(DemoApplet applet)    {        this.applet = applet;	addWindowListener(this);        init();        start();    }    public void run()    {    }    public int getSelectionStart()    {    	return text.getSelectionStart() & 0x7FFF;    }    public int getSelectionEnd()    {    	return text.getSelectionEnd() & 0x7FFF;    }    public synchronized void checkChange()    {		int e = enum.following(getSelectionStart());		int s = enum.previous();		selectRange(s, e);    }	public final synchronized void selectRange(int s, int e)	{		try {			//if (getSelectionStart() != s || getSelectionEnd() != e) {	    		text.select(s, e);			//}			if (getSelectionStart() != s || getSelectionEnd() != e) {				System.out.println("AGH! select("+s+","+e+") -> ("+				getSelectionStart()+","+getSelectionEnd()+")");			}		} catch (Exception exp) {			errorText(exp.toString());		}	}    public void init()    {        buildGUI();    }    public void start()    {    }	void addWithFont(Container container, Component foo, Font font) {		if (font != null)			foo.setFont(font);		container.add(foo);	}   public void buildGUI()  {      setBackground(Color.white);      setLayout(new BorderLayout());      Panel topPanel = new Panel();      Label titleLabel = new Label("Text Boundary Demo", Label.CENTER);      titleLabel.setFont(Utility.titleFont);      topPanel.add(titleLabel);      Label demo=new Label(creditString, Label.CENTER);      demo.setFont(Utility.creditFont);      topPanel.add(demo);      Panel choicePanel = new Panel();      Label demo1=new Label("Boundaries", Label.LEFT);      demo1.setFont(Utility.labelFont);      choicePanel.add(demo1);      bound = new Choice();      bound.addItemListener(this);      bound.addItem("Sentence");      bound.addItem("Line Break");      bound.addItem("Word");      bound.addItem("Char");      if (choiceFont != null)	bound.setFont(choiceFont);      choicePanel.add(bound);      topPanel.add(choicePanel);      Utility.fixGrid(topPanel,1);      add("North", topPanel);      int ROWS = 15;      int COLUMNS = 50;      text = new TextArea(getInitialText(), ROWS, COLUMNS);      text.addKeyListener(this);      text.setEditable(true);      text.selectAll();      text.setFont(Utility.editFont);      add("Center", text);      Panel copyrightPanel = new Panel();      addWithFont (copyrightPanel, 		   new Label(copyrightString, Label.LEFT),Utility.creditFont);      addWithFont (copyrightPanel,		   new Label(copyrightString2, Label.LEFT),Utility.creditFont);      Utility.fixGrid(copyrightPanel,1);      add("South", copyrightPanel);      //layout();      handleEnumChanged();      // (new Thread(this)).start();  }    public String getInitialText()    {    	return	/*			"\"This is a sentence.\" This is not.\" \"because. And go. " +			"This is a simple 012.566,5 sample sentence. \n"+			"It does not have to make any sense as you can see. \n"+			"Nel mezzo del cammin di nostra vita, mi ritrovai in "+				"una selva oscura. \n"+			"Che la dritta via aveo smarrita. \n"+			"He said, that I said, that you said!! \n"+			"Don't rock the boat.\n\n"+			"Because I am the daddy, that is why. \n"+			"Not on my time (el timo.)! \n"+			"Tab\tTab\rTab\tWow."+			"So what!!\n\n"+			"Is this a question???  " +			"I wonder...Hmm.\n" +			"Harris thumbed down several, including \"Away We Go\" "+				"(which became the huge success Oklahoma!). \n"+			"One species, B. anthracis, is highly virulent.\n"+			"Wolf said about Sounder: \"Beautifully thought-out and "+				"directed.\"\n"+			"Have you ever said, \"This is where I shall live\"? \n"+			"He 1000,233,456.000 answered, \"You may not!\" \n"+			"Another popular saying is: \"How do you do?\". \n"+			"What is the proper use of the abbreviation pp.? \n"+			"Yes, I am 1,23.322% definatelly 12\" tall!!";	*/			"(\"This is a complete sentence.\") This is (\"not.\") also. \n"			+"An abbreviation in the middle, etc. and one at the end, etc. "+				"This\n"			+"is a simple sample 012.566,5 sentence. It doesn't\n"			+"have to make any sense, as you can see. Nel mezzo del \nc"			+"ammin di nostra vita, mi ritrovai in una selva oscura. Che\n"			+"la dritta via aveo smarrita. Not on my time (el timo.)! And\n"			+"tabulated columns: \tCol1\tCol2\t3,456%.\t\n"			+"Is this a question???  I wonder... Hmm. Harris thumbed\n"			+"down several, including \"Away We Go\" (which became the \n"			+"huge success Oklahoma!). One species, B. anthracis, is \n"			+"highly virulent. Wolf said about Sounder: \"Beautifully \n"			+"thought-out and directed.\" Have you ever said, \"This is "+				"where I\n"			+"shall live\"? He said 1000,233,456.000 and answered, \"You "+				"may not!\" \n"			+"Another popular saying is: \"How do you do?\". What is the \n"			+"proper use of the abbreviation pp.? Yes, I am 12\' 3\" tall!!";    }	public void handleEnumChanged()	{    	String s = bound.getSelectedItem();    	if (s.equals("Char")) {			errorText("getCharacterInstance");    		enum = BreakIterator.getCharacterInstance();    	}    	else if (s.equals("Word")) {			errorText("tWordBreak");    		enum = BreakIterator.getWordInstance();    	}    	else if (s.equals("Line Break")) {			errorText("getLineInstance");    		enum = BreakIterator.getLineInstance();    	}    	else /* if (s.equals("Sentence")) */ {			errorText("getSentenceInstance");    		enum = BreakIterator.getSentenceInstance();    	}    	enum.setText(text.getText());		selectRange(0, 0);    	//text.select(0,0);	}	public void handleForward()	{		try {			enum.setText(text.getText());			int oldStart = getSelectionStart();			int oldEnd = getSelectionEnd();			if (oldEnd < 1) {				selectRange(0, enum.following(0));			}			else {				int s = enum.following(oldEnd-1);				int e = enum.next();				if (e == -1) {					e = s;				}				selectRange(s, e);			}			//text.select(s, e);			//errorText("<" + oldStart + "," + oldEnd + "> -> <" +				//s + "," + e + ">");		}		catch (Exception exp) {			errorText(exp.toString());		}	}	public void handleBackward()	{		try {			enum.setText(text.getText());			int oldStart = getSelectionStart();			int oldEnd = getSelectionEnd();			if (oldStart < 1) {				selectRange(0, 0);			}			else {				int e = enum.following(oldStart-1);				int s = enum.previous();				selectRange(s, e);			}			//text.select(s, e);			//errorText("<" + oldStart + "," + oldEnd + "> -> <" + s + "," + e + ">");		}		catch (Exception exp) {			errorText(exp.toString());		}	}  /* ItemListener method */  public void itemStateChanged(ItemEvent e) {    if(e.getSource() instanceof Choice)      handleEnumChanged();  }    /* KeyListener methods */  public void keyPressed(KeyEvent e) {    if (e.getKeyCode() == KeyEvent.VK_RIGHT){      e.consume();// don't deliver the event to the native widget      handleForward();    } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {      e.consume();// don't deliver the event to the native widget      handleBackward();    }  }  public void keyReleased(KeyEvent e) {  }  public void keyTyped(KeyEvent e) {  }    /* Window Listener methods */  public void windowClosed(WindowEvent e) {  }  public void windowDeiconified(WindowEvent e) {  }  public void windowIconified(WindowEvent e) {  }  public void windowActivated(WindowEvent e) {  }  public void windowDeactivated(WindowEvent e) {  }  public void windowOpened(WindowEvent e) {  }  public void windowClosing(WindowEvent e) {    setVisible(false);    dispose();    if (applet != null) {      applet.demoClosed();    } else System.exit(0);  }      public void errorText(String s)    {        if (DEBUG)            System.out.println(s);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -