📄 messageformatdemo.java
字号:
doFormatting(); } else if ((e.getSource() == choice1Num) ||(e.getSource() == choice2Num) || (e.getSource() == choice3Num) ||(e.getSource() == choice4Num)) { e.consume(); doFormatting(); } else if ((e.getSource() == arg1Text) ||(e.getSource() == arg2Text) || (e.getSource() == arg3Text) ||(e.getSource() == arg4Text)) { e.consume(); doFormatting(); } else if (e.getSource() == patternText) { e.consume(); doFormatting(); } } 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); } //------------------------------------------------------------ // package private //------------------------------------------------------------ double doubleValue(String s) { try { return Double.valueOf(s).doubleValue(); } catch (Exception foo) { return Double.POSITIVE_INFINITY; } } void constrainedAdd(GridBagConstraints c, Container container, Component foo, Font font) { GridBagLayout gridbag = (GridBagLayout)container.getLayout(); if (font != null) foo.setFont(font); gridbag.setConstraints(foo, c); container.add(foo); } Choice cloneChoice (Choice source) { Choice result = new Choice(); for (int i = 0; i < source.getItemCount(); ++i) result.addItem(source.getItem(i)); result.setFont(source.getFont()); return result; } void addWithFont(Container container, Component foo, Font font) { if (font != null) foo.setFont(font); container.add(foo); } //{{DECLARE_CONTROLS Label label1; Label label2; TextField patternText; Label label3; Label label4; Label label5; Label labelArg; Label labelForm; TextField arg1Text; TextField arg2Text; TextField arg3Text; Choice arg1Type; Choice arg2Type; Choice arg3Type; Label label6; Choice localeMenu; Label localeLabel; Label label13; Label label14; TextField resultText; Label label7; Label label8; Label label9; TextField choice1Num; TextField choice2Num; TextField choice3Num; TextField choice4Num; TextField choice1Text; TextField choice2Text; TextField choice3Text; TextField choice4Text; Label label10; Label label11; Label label12; TextField arg4Text; Choice arg4Type; //}} //------------------------------------------------------------ // private //------------------------------------------------------------ private void buildGUI() { //{{INIT_CONTROLS setLayout(new FlowLayout(FlowLayout.CENTER,2,2)); // MD 8/7 setBackground(Color.white); // MD 8/7 // Main Title Panel titleCreditPanel = new Panel(); label6=new Label("Message Format Demo", Label.CENTER); label6.setFont(Utility.titleFont); titleCreditPanel.add(label6); Panel creditPanel = new Panel(); label13=new Label(creditString); label13.setFont(Utility.creditFont); creditPanel.add(label13); titleCreditPanel.add(creditPanel); Utility.fixGrid(titleCreditPanel,1); // result text Panel patternResultPanel = new Panel(); addWithFont(patternResultPanel,new Label("Result", Label.RIGHT),Utility.labelFont); addWithFont(patternResultPanel,resultText= new TextField(FIELD_COLUMNS),Utility.editFont); addWithFont(patternResultPanel,new Label("Pattern", Label.RIGHT),Utility.labelFont); addWithFont(patternResultPanel,patternText=new TextField(FIELD_COLUMNS),Utility.editFont); patternText.addKeyListener(this); Utility.fixGrid(patternResultPanel,2); // Locale and credits Panel localeCreditPanel = new Panel(); // localeCreditPanel.setLayout(new GridBagLayout()); localeLabel=new Label("Locale:",Label.LEFT); localeLabel.setFont(Utility.labelFont); //localeCreditPanel.add("loc",localeLabel); // LOCALE localeMenu= new Choice(); localeMenu.addItemListener(this); // Stick the names of the locales into the locale popup menu Locale displayLocale = Locale.getDefault(); for (int i = 0; i < locales.length; i++) { if (locales[i].getCountry().length() > 0) { localeMenu.addItem( locales[i].getDisplayName() ); if (locales[i].equals(Locale.getDefault())) { localeMenu.select(i); } } } localeMenu.setFont(Utility.choiceFont); Panel localePanel=new Panel(); localePanel.add(localeLabel); localePanel.add(localeMenu); localeCreditPanel.add(localePanel); arg1Type= new Choice(); arg1Type.setFont(Utility.choiceFont); arg1Type.addItem("Number"); arg1Type.addItem("Date"); arg1Type.addItem("Choice"); arg1Type.addItem("None"); arg1Type.addItemListener(this); // PUT THE ARGUMENTS/ FORMATS into GRID Panel allArgs = new Panel(); addWithFont(allArgs,new Label(" "),Utility.labelFont); addWithFont(allArgs,new Label("Arguments", Label.LEFT), Utility.labelFont); addWithFont(allArgs,new Label("0",Label.RIGHT),Utility.labelFont); addWithFont(allArgs,arg1Text=new TextField(12),Utility.editFont); addWithFont(allArgs,new Label("1",Label.RIGHT),Utility.labelFont); addWithFont(allArgs,arg2Text=new TextField(12),Utility.editFont); addWithFont(allArgs,new Label("2",Label.RIGHT),Utility.labelFont); addWithFont(allArgs,arg3Text=new TextField(12),Utility.editFont); addWithFont(allArgs,new Label("3",Label.RIGHT),Utility.labelFont); addWithFont(allArgs,arg4Text=new TextField(12),Utility.editFont); arg1Text.addKeyListener(this); arg2Text.addKeyListener(this); arg3Text.addKeyListener(this); arg4Text.addKeyListener(this); Utility.fixGrid(allArgs,2); Panel formatPanel = new Panel(); addWithFont(formatPanel,new Label(" "),Utility.labelFont); addWithFont(formatPanel,new Label("Formats", Label.LEFT), Utility.labelFont); addWithFont(formatPanel,new Label("0",Label.RIGHT),Utility.labelFont); addWithFont(formatPanel,arg1Type,Utility.choiceFont); addWithFont(formatPanel,new Label("1",Label.RIGHT),Utility.labelFont); addWithFont(formatPanel,arg2Type = cloneChoice(arg1Type), Utility.choiceFont); addWithFont(formatPanel,new Label("2",Label.RIGHT),Utility.labelFont); addWithFont(formatPanel,arg3Type = cloneChoice(arg1Type), Utility.choiceFont); addWithFont(formatPanel,new Label("3",Label.RIGHT),Utility.labelFont); addWithFont(formatPanel,arg4Type = cloneChoice(arg1Type), Utility.choiceFont); arg2Type.addItemListener(this); arg3Type.addItemListener(this); arg4Type.addItemListener(this); Utility.fixGrid(formatPanel,2); // Choices panel Panel choicesPanel = new Panel(); addWithFont(choicesPanel,new Label(">=", Label.LEFT), Utility.labelFont); addWithFont(choicesPanel,new Label("Choice Strings", Label.LEFT), Utility.labelFont); addWithFont(choicesPanel,choice1Num=new TextField(4), Utility.editFont); addWithFont(choicesPanel,choice1Text=new TextField(16), Utility.editFont); addWithFont(choicesPanel,choice2Num=new TextField(4), Utility.editFont); addWithFont(choicesPanel,choice2Text=new TextField(16), Utility.editFont); addWithFont(choicesPanel,choice3Num=new TextField(4), Utility.editFont); addWithFont(choicesPanel,choice3Text=new TextField(16), Utility.editFont); addWithFont(choicesPanel,choice4Num=new TextField(4), Utility.editFont); addWithFont(choicesPanel,choice4Text=new TextField(16), Utility.editFont); choice1Text.addKeyListener(this); choice2Text.addKeyListener(this); choice3Text.addKeyListener(this); choice4Text.addKeyListener(this); choice1Num.addKeyListener(this); choice2Num.addKeyListener(this); choice3Num.addKeyListener(this); choice4Num.addKeyListener(this); Utility.fixGrid(choicesPanel,2); add(titleCreditPanel); add(patternResultPanel); add(localeCreditPanel); Panel bottomPanel = new Panel(); bottomPanel.add(allArgs); XBorderPanel x = new XBorderPanel(); // MD 8/7 x.setBackground(Color.lightGray); x.setLayout(null); x.setSize(8,130); bottomPanel.add(x); bottomPanel.add(formatPanel); XBorderPanel x1 = new XBorderPanel(); // MD 8/7 x1.setBackground(Color.lightGray); x1.setLayout(null); x1.setSize(8,130); bottomPanel.add(x1); bottomPanel.add(choicesPanel); Utility.fixGrid(bottomPanel,5); // MD 8/7 only after fixGrid Utility.setInsets(bottomPanel,x,new Insets(20,20,2,2)); Utility.setInsets(bottomPanel,x1,new Insets(20,20,2,20)); add(bottomPanel); 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(copyrightPanel); } private Object createObject(Choice typeMenu, TextField textField ) { int type = typeMenu.getSelectedIndex(); String text = textField.getText(); Object result = null; try { if (type == NUMBER || type == CHOICE) { result = new Double(text); } else if (type == DATE) { // Still use the deprecated new Date(text) until // the DateFormat.parse(text) is working properly. result = new Long( (new Date(text)).getTime() + 1); // 1 millisecond was added to display the date correctly. // This is done to fix the following scenario, eg, // "27 Sept 96" ==> "26 Sept 96 12:00 AM PDT" which is // equvalent to "27 Sept 96 00:00 AM PDT". -- CLH 9/27/96 } else if (type == NONE) { result = text; } } catch (RuntimeException e) { } return result; } private void errorText(String s) { if (DEBUG) { System.out.println(s); } } private static final String creditString = "v1.1a7, Demos"; private static final String copyrightString = ""; private static final String copyrightString2 = ""; private static final int FIELD_COLUMNS = 60; static private final int NUMBER = 0; static private final int DATE = 1; static private final int CHOICE = 2; static private final int NONE = 3; private static final boolean DEBUG = false; private Locale[] locales; private DemoApplet applet; private ChoiceFormat choiceFormat; // XXX}// MD 8/7 whole class, from Ralf. Use different name!class XBorderPanel extends Panel{ /** * Panel shadow border width */ protected int shadow = 4; /** * Panel raised vs depressed look */ protected boolean raised = true; public XBorderPanel() { this.raised=true; } public XBorderPanel(boolean raised) { this.raised=raised; } /** * Re-layout parent. Called when a panel changes * size etc. */ protected void layoutParent() { Container parent = getParent(); if (parent != null) { parent.doLayout(); } } public void paint(Graphics g) { super.paint(g); Dimension size = getSize(); paintBorder(g, size); } protected void paintBorder(Graphics g, Dimension size) { Color c = getBackground(); g.setColor(c); g.fillRect(0, 0, size.width, size.height); draw3DRect(g, 0, 0, size.width, size.height, raised); } /** * Draw a 3D Rectangle. * @param g the specified Graphics window * @param x, y, width, height * @param raised - true if border should be painted as raised. * @see #paint */ public void draw3DRect(Graphics g, int x, int y, int width, int height, boolean raised) { Color c = g.getColor(); Color brighter = avgColor(c,Color.white); Color darker = avgColor(c,Color.black); // upper left corner g.setColor(raised ? brighter : darker); for (int i=0; i<shadow; i++) { g.drawLine(x+i, y+i, x+width-1-i, y+i); g.drawLine(x+i, y+i, x+i, y+height-1-i); } // lower right corner g.setColor(raised ? darker : brighter); for (int i=0; i<shadow; i++) { g.drawLine(x+i, y+height-1-i, x+width-1-i, y+height-1-i); g.drawLine(x+width-1-i, y+height-1-i, x+width-1-i, y+i); } g.setColor(c); // added by rip. g.setColor(Color.black); g.drawRect(x,y,width+2,height+2); } public static Color avgColor(Color c1, Color c2) { return new Color( (c1.getRed()+c2.getRed())/2, (c1.getGreen()+c2.getGreen())/2, (c1.getBlue()+c2.getBlue())/2 ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -