亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? inputverificationdemo.java

?? Java樣例程序集合:2D
?? JAVA
字號:
/* * InputVerificationDemo.java is a 1.4 example that * requires no other files. */import java.util.Set;import java.util.HashSet;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.text.*;import java.beans.PropertyChangeListener;import java.beans.PropertyChangeEvent;import java.text.*;/** * InputVerificationDemo.java is a 1.4 example that * requires no other files. * * Yet another mortgage calculator. * However, instead of using a formatted text field, * as shown in FormattedTextFieldDemo, this example * uses input verification to validate user input. */public class InputVerificationDemo extends JPanel {    //Default values    private static double DEFAULT_AMOUNT = 100000;    private static double DEFAULT_RATE = 7.5; //7.5%    private static int DEFAULT_PERIOD = 30;    //Labels to identify the text fields    private JLabel amountLabel;    private JLabel rateLabel;    private JLabel numPeriodsLabel;    private JLabel paymentLabel;    //Strings for the labels    private static String amountString = "Loan Amount (10,000-10,000,000): ";    private static String rateString = "APR (>= 0%): ";    private static String numPeriodsString = "Years (1-40): ";    private static String paymentString = "Monthly Payment: ";    //Text fields for data entry    private JTextField amountField;    private JTextField rateField;    private JTextField numPeriodsField;    private JTextField paymentField;    //Formats to format and parse numbers    private NumberFormat moneyFormat;    private NumberFormat percentFormat;    private DecimalFormat decimalFormat;    private DecimalFormat paymentFormat;    private MyVerifier verifier = new MyVerifier();    public InputVerificationDemo() {        super(new BorderLayout());        setUpFormats();        double payment = computePayment(DEFAULT_AMOUNT,                                        DEFAULT_RATE,                                        DEFAULT_PERIOD);        //Create the labels.        amountLabel = new JLabel(amountString);        rateLabel = new JLabel(rateString);        numPeriodsLabel = new JLabel(numPeriodsString);        paymentLabel = new JLabel(paymentString);        //Create the text fields and set them up.        amountField = new JTextField(moneyFormat.format(DEFAULT_AMOUNT), 10);        amountField.setInputVerifier(verifier);        rateField = new JTextField(percentFormat.format(DEFAULT_RATE), 10);        rateField.setInputVerifier(verifier);        numPeriodsField = new JTextField(decimalFormat.format(DEFAULT_PERIOD), 10);        numPeriodsField.setInputVerifier(verifier);        paymentField = new JTextField(paymentFormat.format(payment), 10);        paymentField.setInputVerifier(verifier);        paymentField.setEditable(false);        //Remove this component from the focus cycle.        paymentField.setFocusable(false);        paymentField.setForeground(Color.red);        //Register an action listener to handle Return.        amountField.addActionListener(verifier);        rateField.addActionListener(verifier);        numPeriodsField.addActionListener(verifier);        //Tell accessibility tools about label/textfield pairs.        amountLabel.setLabelFor(amountField);        rateLabel.setLabelFor(rateField);        numPeriodsLabel.setLabelFor(numPeriodsField);        paymentLabel.setLabelFor(paymentField);        //Lay out the labels in a panel.        JPanel labelPane = new JPanel(new GridLayout(0,1));        labelPane.add(amountLabel);        labelPane.add(rateLabel);        labelPane.add(numPeriodsLabel);        labelPane.add(paymentLabel);        //Layout the text fields in a panel.        JPanel fieldPane = new JPanel(new GridLayout(0,1));        fieldPane.add(amountField);        fieldPane.add(rateField);        fieldPane.add(numPeriodsField);        fieldPane.add(paymentField);        //Put the panels in this panel, labels on left,        //text fields on right.        setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));        add(labelPane, BorderLayout.CENTER);        add(fieldPane, BorderLayout.LINE_END);    }    class MyVerifier extends InputVerifier                     implements ActionListener {        double MIN_AMOUNT = 10000.0;        double MAX_AMOUNT = 10000000.0;        double MIN_RATE = 0.0;        int MIN_PERIOD = 1;        int MAX_PERIOD = 40;       public boolean shouldYieldFocus(JComponent input) {            boolean inputOK = verify(input);            makeItPretty(input);            updatePayment();            if (inputOK) {                return true;            } else {                Toolkit.getDefaultToolkit().beep();                return false;            }        }        protected void updatePayment() {            double amount = DEFAULT_AMOUNT;            double rate = DEFAULT_RATE;            int numPeriods = DEFAULT_PERIOD;            double payment = 0.0;            //Parse the values.            try {                amount = moneyFormat.parse(amountField.getText()).                                  doubleValue();            } catch (ParseException pe) {}            try {                rate = percentFormat.parse(rateField.getText()).                                     doubleValue();            } catch (ParseException pe) {}            try {                numPeriods = decimalFormat.parse(numPeriodsField.getText()).                                  intValue();            } catch (ParseException pe) {}            //Calculate the result and update the GUI.            payment = computePayment(amount, rate, numPeriods);            paymentField.setText(paymentFormat.format(payment));        }        //This method checks input, but should cause no side effects.        public boolean verify(JComponent input) {            return checkField(input, false);        }        protected void makeItPretty(JComponent input) {            checkField(input, true);        }        protected boolean checkField(JComponent input, boolean changeIt) {            if (input == amountField) {                return checkAmountField(changeIt);            } else if (input == rateField) {                return checkRateField(changeIt);            } else if (input == numPeriodsField) {                return checkNumPeriodsField(changeIt);            } else {                return true; //shouldn't happen            }        }        //Checks that the amount field is valid.  If it is valid,        //it returns true; otherwise, returns false.  If the        //change argument is true, this method reigns in the        //value if necessary and (even if not) sets it to the        //parsed number so that it looks good -- no letters,        //for example.        protected boolean checkAmountField(boolean change) {            boolean wasValid = true;            double amount = DEFAULT_AMOUNT;            //Parse the value.            try {                amount = moneyFormat.parse(amountField.getText()).                                  doubleValue();            } catch (ParseException pe) {                wasValid = false;            }            //Value was invalid.            if ((amount < MIN_AMOUNT) || (amount > MAX_AMOUNT)) {                wasValid = false;                if (change) {                    if (amount < MIN_AMOUNT) {                        amount = MIN_AMOUNT;                    } else { // amount is greater than MAX_AMOUNT                        amount = MAX_AMOUNT;                    }                }            }            //Whether value was valid or not, format it nicely.            if (change) {                amountField.setText(moneyFormat.format(amount));                amountField.selectAll();            }            return wasValid;        }        //Checks that the rate field is valid.  If it is valid,        //it returns true; otherwise, returns false.  If the        //change argument is true, this method reigns in the        //value if necessary and (even if not) sets it to the        //parsed number so that it looks good -- no letters,        //for example.        protected boolean checkRateField(boolean change) {            boolean wasValid = true;            double rate = DEFAULT_RATE;            //Parse the value.            try {                rate = percentFormat.parse(rateField.getText()).                                     doubleValue();            } catch (ParseException pe) {                wasValid = false;            }            //Value was invalid.            if (rate < MIN_RATE) {                wasValid = false;                if (change) {                    rate = MIN_RATE;                }            }            //Whether value was valid or not, format it nicely.            if (change) {                rateField.setText(percentFormat.format(rate));                rateField.selectAll();            }            return wasValid;        }        //Checks that the numPeriods field is valid.  If it is valid,        //it returns true; otherwise, returns false.  If the        //change argument is true, this method reigns in the        //value if necessary and (even if not) sets it to the        //parsed number so that it looks good -- no letters,        //for example.        protected boolean checkNumPeriodsField(boolean change) {            boolean wasValid = true;            int numPeriods = DEFAULT_PERIOD;            //Parse the value.            try {                numPeriods = decimalFormat.parse(numPeriodsField.getText()).                                  intValue();            } catch (ParseException pe) {                wasValid = false;            }            //Value was invalid.            if ((numPeriods < MIN_PERIOD) || (numPeriods > MAX_PERIOD)) {                wasValid = false;                if (change) {                    if (numPeriods < MIN_PERIOD) {                        numPeriods = MIN_PERIOD;                    } else { // numPeriods is greater than MAX_PERIOD                        numPeriods = MAX_PERIOD;                    }                }            }            //Whether value was valid or not, format it nicely.            if (change) {                numPeriodsField.setText(decimalFormat.format(numPeriods));                numPeriodsField.selectAll();            }            return wasValid;        }        public void actionPerformed(ActionEvent e) {            JTextField source = (JTextField)e.getSource();            shouldYieldFocus(source); //ignore return value            source.selectAll();        }    }    /**     * Create the GUI and show it.  For thread safety,     * this method should be invoked from the     * event-dispatching thread.     */    private static void createAndShowGUI() {        //Make sure we have nice window decorations.        JFrame.setDefaultLookAndFeelDecorated(true);        //Create and set up the window.        JFrame frame = new JFrame("InputVerificationDemo");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        //Create and set up the content pane.        JComponent newContentPane = new InputVerificationDemo();        newContentPane.setOpaque(true); //content panes must be opaque        frame.setContentPane(newContentPane);        //Display the window.        frame.pack();        frame.setVisible(true);    }    public static void main(String[] args) {        //Schedule a job for the event-dispatching thread:        //creating and showing this application's GUI.        javax.swing.SwingUtilities.invokeLater(new Runnable() {            public void run() {                createAndShowGUI();            }        });    }    //Compute the monthly payment based on the loan amount,    //APR, and length of loan.    double computePayment(double loanAmt, double rate, int numPeriods) {        double I, partial1, denominator, answer;        numPeriods *= 12;        //get number of months        if (rate > 0.01) {            I = rate / 100.0 / 12.0;         //get monthly rate from annual            partial1 = Math.pow((1 + I), (0.0 - numPeriods));            denominator = (1 - partial1) / I;        } else { //rate ~= 0            denominator = numPeriods;        }        answer = (-1 * loanAmt) / denominator;        return answer;    }    //Create and set up number formats. These objects are used    //for both parsing input and formatting output.    private void setUpFormats() {        moneyFormat = (NumberFormat)NumberFormat.getNumberInstance();        percentFormat = NumberFormat.getNumberInstance();        percentFormat.setMinimumFractionDigits(3);        decimalFormat = (DecimalFormat)NumberFormat.getNumberInstance();        decimalFormat.setParseIntegerOnly(true);        paymentFormat = (DecimalFormat)NumberFormat.getNumberInstance();        paymentFormat.setMaximumFractionDigits(2);        paymentFormat.setNegativePrefix("(");        paymentFormat.setNegativeSuffix(")");    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99国产精品尤物| 亚洲已满18点击进入久久| 久久66热偷产精品| 欧美成人精品二区三区99精品| 国产中文字幕精品| 亚洲国产精品99久久久久久久久| 成人av电影在线观看| 亚洲私人影院在线观看| 色偷偷88欧美精品久久久| 亚洲国产一区视频| 日韩免费视频线观看| 国产91在线看| 一区二区三区在线观看动漫| 欧美日韩国产高清一区二区| 久久电影网站中文字幕| 国产精品高潮呻吟久久| 欧美日韩亚洲不卡| 国产精品99久久久久| 亚洲品质自拍视频网站| 日韩亚洲欧美一区二区三区| 丁香一区二区三区| 亚洲一区二区三区四区不卡| 精品黑人一区二区三区久久| 波多野结衣在线一区| 天堂精品中文字幕在线| 久久精品日韩一区二区三区| 91福利国产精品| 九一久久久久久| 亚洲日本电影在线| 日韩精品自拍偷拍| 色婷婷久久久综合中文字幕| 日韩电影一区二区三区四区| 国产三级精品三级在线专区| 欧洲av一区二区嗯嗯嗯啊| 国产精品99久久久久| 亚洲国产美国国产综合一区二区| 久久在线免费观看| 欧美日韩免费一区二区三区视频| 国产成人精品免费一区二区| 亚洲国产精品综合小说图片区| 国产色婷婷亚洲99精品小说| 欧美电影一区二区| 97久久人人超碰| 国内外精品视频| 五月激情综合色| 最新欧美精品一区二区三区| 日韩免费看网站| 欧美日韩美少妇| 99久久er热在这里只有精品15| 久久不见久久见中文字幕免费| 亚洲精品国久久99热| 中文字幕国产一区二区| 欧美www视频| 欧美精品丝袜久久久中文字幕| 91尤物视频在线观看| 国产白丝精品91爽爽久久| 久久国产三级精品| 日韩va亚洲va欧美va久久| 一区av在线播放| 亚洲精品成人少妇| 亚洲丝袜美腿综合| 国产精品短视频| 国产亚洲综合在线| 久久综合一区二区| 精品国产免费一区二区三区四区 | 亚洲女同一区二区| 国产精品美女久久久久aⅴ国产馆| 精品免费国产二区三区| 欧美一区二区视频网站| 欧美精三区欧美精三区| 91精品午夜视频| 日韩一区二区三区免费看| 7777女厕盗摄久久久| 69久久99精品久久久久婷婷| 欧美日韩精品久久久| 欧美日韩在线观看一区二区| 欧美性一区二区| 欧美人与性动xxxx| 7799精品视频| 欧美成人国产一区二区| 久久久久久久久久久黄色| 久久久午夜精品| 国产精品高潮呻吟久久| 亚洲精品ww久久久久久p站| 亚洲黄色免费电影| 午夜电影一区二区| 久久精品国产久精国产爱| 九九视频精品免费| 国产大陆亚洲精品国产| 成人午夜电影小说| youjizz国产精品| 欧洲一区二区三区在线| 67194成人在线观看| 久久综合色之久久综合| 久久精品人人做人人综合| 自拍偷拍欧美激情| 亚洲国产精品麻豆| 美脚の诱脚舐め脚责91| 精品一区二区在线看| 懂色av一区二区三区免费看| 色狠狠一区二区| 欧美成人a视频| 国产精品久久久久桃色tv| 亚洲最大的成人av| 美腿丝袜亚洲三区| 国产999精品久久久久久绿帽| 一本一道综合狠狠老| 欧美日韩国产一区二区三区地区| 日韩欧美卡一卡二| 亚洲天堂av一区| 日本成人在线不卡视频| 国产成人免费视| 欧美日韩第一区日日骚| 亚洲精品在线网站| 亚洲自拍偷拍图区| 国产中文字幕一区| 欧美日韩中文字幕一区| 久久久精品影视| 亚洲va国产va欧美va观看| 国产永久精品大片wwwapp| 色网综合在线观看| 久久九九久精品国产免费直播| 亚洲黄网站在线观看| 国产综合色视频| 欧美日韩在线免费视频| 国产精品免费观看视频| 蜜臀av一区二区三区| 色婷婷综合久久久中文一区二区| 日韩午夜电影av| 亚洲图片欧美色图| 成人福利视频网站| 欧美mv日韩mv国产网站| 一区二区三区高清不卡| 高清av一区二区| 欧美一区二区三区啪啪| 亚洲美女屁股眼交| 国产不卡视频在线观看| 欧美成人综合网站| 亚洲图片有声小说| 91免费看`日韩一区二区| 26uuu亚洲综合色| 毛片一区二区三区| 欧美另类久久久品| 亚洲第一av色| 在线看国产一区| 亚洲欧洲国产日本综合| 国产成人三级在线观看| 精品捆绑美女sm三区| 日韩国产精品大片| 欧美精品自拍偷拍| 亚洲第一会所有码转帖| 日本丶国产丶欧美色综合| 欧美国产日韩在线观看| 国产精品一二一区| 2020国产成人综合网| 久久精品国产精品亚洲综合| 91精品国产色综合久久ai换脸 | 欧美夫妻性生活| 亚洲综合激情网| 欧美在线免费视屏| 亚洲美女在线一区| 色香色香欲天天天影视综合网| 国产精品不卡一区| 不卡一区在线观看| 中文字幕高清不卡| www.爱久久.com| 国产精品不卡视频| 一本一本大道香蕉久在线精品 | 精品日韩成人av| 视频一区二区三区在线| 6080亚洲精品一区二区| 美女性感视频久久| 日韩精品中文字幕一区| 国产综合久久久久影院| 久久精品人人做人人爽人人| 国产精品66部| 国产精品久久久久久久久动漫| 成人av电影在线| 一区二区三区精品视频| 欧美日韩高清一区| 奇米综合一区二区三区精品视频| 欧美成人一区二区三区片免费 | 日韩美女在线视频| 国产成人午夜视频| 亚洲欧洲制服丝袜| 欧美亚洲综合久久| 裸体歌舞表演一区二区| 日本一区二区三区电影| 一本大道久久a久久综合婷婷 | 欧美一卡2卡3卡4卡| 久久97超碰色| 18欧美亚洲精品| 色激情天天射综合网| 男人的天堂亚洲一区| 久久你懂得1024| 色悠久久久久综合欧美99| 亚洲v中文字幕| 国产亚洲一区二区在线观看| 日本高清成人免费播放| 麻豆视频观看网址久久|