import?java.util.Scanner;
創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有十載的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),1000多家客戶的共同信賴。提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、買友情鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
import?java.awt.*;
import?java.awt.event.*;
public?class?Test?extends?WindowAdapter?{
Panel?p1?=?new?Panel();
Panel?p2?=?new?Panel();
Panel?p3?=?new?Panel();
TextField?txt;
private?Button[]?b?=?new?Button[17];
private?String?ss[]?=?{?"7",?"8",?"9",?"+",?"4",?"5",?"6",?"-",?"1",?"2",
"3",?"*",?"clear",?"0",?"=",?"/",?"close"?};
static?double?a;
static?String?s,?str;//?定義變量?創(chuàng)建對像
public?static?void?main(String?args[])?{
(new?Test()).frame();
}
public?void?frame()?{
Frame?fm?=?new?Frame("簡單計(jì)算器");
for?(int?i?=?0;?i?=?16;?i++)?{
b[i]?=?new?Button(ss[i]);
}
for?(int?i?=?0;?i?=?15;?i++)?{
p2.add(b[i]);
}?//?創(chuàng)建按鈕?并添加到P2
b[16].setBackground(Color.yellow);
txt?=?new?TextField(15);
txt.setEditable(false);
for?(int?i?=?0;?i?=?16;?i++)?{
b[i].addActionListener(new?buttonlistener());//?添加監(jiān)聽器
}
b[16].addActionListener(new?close());
fm.addWindowListener(this);
fm.setBackground(Color.red);
p1.setLayout(new?BorderLayout());
p1.add(txt,?"North");
p2.setLayout(new?GridLayout(4,?4));
p3.setLayout(new?BorderLayout());
p3.add(b[16]);
fm.add(p1,?"North");
fm.add(p2,?"Center");
fm.add(p3,?"South");
fm.pack();
fm.setVisible(true);//?都是些窗中設(shè)置?添加相關(guān)組件和監(jiān)聽器
}
public?void?windowClosing(WindowEvent?e)?{
System.exit(0);//?退出系統(tǒng)
}
class?buttonlistener?implements?ActionListener?{//?編寫監(jiān)聽器事件?通過按鍵得出給果
public?void?actionPerformed(ActionEvent?e)?{
Button?btn?=?(Button)?e.getSource();
if?(btn.getLabel()?==?"=")?{
jisuan();
str?=?String.valueOf(a);
txt.setText(str);
s?=?"";
}?else?if?(btn.getLabel()?==?"+")?{
jisuan();
txt.setText("");
s?=?"+";
}?else?if?(btn.getLabel()?==?"-")?{
jisuan();
txt.setText("");
s?=?"-";
}?else?if?(btn.getLabel()?==?"/")?{
jisuan();
txt.setText("");
s?=?"/";
}?else?if?(btn.getLabel()?==?"*")?{
jisuan();
txt.setText("");
s?=?"*";
}?else?{
txt.setText(txt.getText()?+?btn.getLabel());
if?(btn.getLabel()?==?"clear")
txt.setText("");
}
}
public?void?jisuan()?{//?編寫具體計(jì)算方法
if?(s?==?"+")
a?+=?Double.parseDouble(txt.getText());
else?if?(s?==?"-")
a?-=?Double.parseDouble(txt.getText());
else?if?(s?==?"*")
a?*=?Double.parseDouble(txt.getText());
else?if?(s?==?"/")
a?/=?Double.parseDouble(txt.getText());
else
a?=?Double.parseDouble(txt.getText());
}
}
}
class?close?implements?ActionListener?{//?退出
public?void?actionPerformed(ActionEvent?e)?{
System.exit(0);
}
}
package?example;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JFrame;
import?javax.swing.JMenu;
import?javax.swing.JMenuBar;
import?javax.swing.JMenuItem;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
import?javax.swing.border.EmptyBorder;
public?class?demo?extends?JFrame{
private?JMenuBar?menu?=?new?JMenuBar();
private?JPanel?contentPane?=?new?JPanel();
public?demo()
{
setTitle("compiler");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setJMenuBar(menu);
//JMenu?correct?=?new?JMenu("正確用例");
//JMenu?wrong?=?new?JMenu("錯誤用例");
////JMenuItem?WP?=?wrong.add("語法錯誤");
//JMenuItem?WL?=?wrong.add("詞法錯誤");
JMenu?edit?=?new?JMenu("編輯");
JMenu?help??=?new?JMenu("幫助");
JMenu?document?=?new?JMenu("文件");
JMenuItem?copy?=?edit.add("復(fù)制");
JMenu?color?=?new?JMenu("顏色");
JMenuItem?p?=?color.add("前景色");
p.addActionListener(new?ActionListener()
{
@Override
public?void?actionPerformed(ActionEvent?e)?{
JOptionPane.showMessageDialog(null,
"該項(xiàng)目正在建設(shè)中",?"信息",
JOptionPane.INFORMATION_MESSAGE);
}
});
JMenuItem?b?=?color.add("背景色");
b.addActionListener(new?ActionListener()
{
@Override
public?void?actionPerformed(ActionEvent?e)?{
JOptionPane.showMessageDialog(null,
"該項(xiàng)目正在建設(shè)中",?"信息",
JOptionPane.INFORMATION_MESSAGE);
}
});
edit.add(color);
JMenuItem?select?=?edit.add("全選");
menu.add(document);
menu.add(edit);
menu.add(help);
setLocation(400,200);
setSize(300,?300);
contentPane.setBorder(new?EmptyBorder(5,?5,?5,?5));
setContentPane(contentPane);
}
public?static?void?main(String[]args)
{
demo?browser?=?new?demo();
browser.setVisible(true);
}
}
java設(shè)計(jì)計(jì)算器,主要是使用java swing,對每個按鈕進(jìn)行監(jiān)聽,實(shí)現(xiàn)相關(guān)功能,如下代碼:
package?com.qiu.lin.he;
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.ImageIcon;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JPanel;
import?javax.swing.JTextField;
import?javax.swing.SwingConstants;
public?class?Jisuanqi?extends?JFrame?implements?ActionListener?{
/**
?*?
?*/
private?static?final?long?serialVersionUID?=?1L;
Result?result?=?new?Result();?//?定義text的面板
Number_Key?number_key?=?new?Number_Key();?//?定義按鈕面板
//?當(dāng)點(diǎn)擊按鈕+、-、*、/時,com?=?true
boolean?com?=?false;
//?當(dāng)i=0時說明是我們第一次輸入,字符串text不會累加
int?i?=?0;
//?存放text的內(nèi)容
String?text?=?"";
//?存放點(diǎn)擊按鈕+、-、*、/之前的數(shù)值
double?defbutton?=?0;
//?+、-、*、/的代號分別為1,2,3,4
int?symbol?=?0;
//?構(gòu)造函數(shù)
Jisuanqi()?{
super("WangJiao");?//?設(shè)定標(biāo)題
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);?//?設(shè)定關(guān)閉窗體時退出程序
JPanel?pane?=?new?JPanel();?//?定義主面板
pane.setLayout(new?BorderLayout());
setBounds(380,?220,?30,?80);?//?前兩個參數(shù)是在屏幕上顯示的坐標(biāo),后兩個是大小
//?替換圖標(biāo)
ImageIcon?icon?=?new?ImageIcon("F:1.GIF");
//?Jisuanqi.class.getResource("APPLE.GIF")
//?);
setIconImage(icon.getImage());
pane.add(result,?BorderLayout.NORTH);
pane.add(number_key,?BorderLayout.CENTER);
pane.add(number_key.equal,?BorderLayout.SOUTH);
number_key.one.addActionListener(this);?//?對1按鈕添加監(jiān)聽事件
number_key.two.addActionListener(this);?//?對2按鈕添加監(jiān)聽事件
number_key.three.addActionListener(this);?//?對3按鈕添加監(jiān)聽事件
number_key.four.addActionListener(this);?//?對4按鈕添加監(jiān)聽事件
number_key.five.addActionListener(this);?//?對5按鈕添加監(jiān)聽事件
number_key.six.addActionListener(this);?//?對6按鈕添加監(jiān)聽事件
number_key.seven.addActionListener(this);?//?對7按鈕添加監(jiān)聽事件
number_key.eight.addActionListener(this);?//?對8按鈕添加監(jiān)聽事件
number_key.nine.addActionListener(this);?//?對9按鈕添加監(jiān)聽事件
number_key.zero.addActionListener(this);?//?對0按鈕添加監(jiān)聽事件
number_key.ce.addActionListener(this);?//?對置零按鈕添加監(jiān)聽事件
number_key.plus.addActionListener(this);?//?對+按鈕添加監(jiān)聽事件
number_key.equal.addActionListener(this);?//?對=按鈕添加監(jiān)聽事件
number_key.sub.addActionListener(this);?//?對-按鈕添加監(jiān)聽事件
number_key.mul.addActionListener(this);?//?對*按鈕添加監(jiān)聽事件
number_key.div.addActionListener(this);?//?對/按鈕添加監(jiān)聽事件
number_key.point.addActionListener(this);?//?對.按鈕添加監(jiān)聽事件
setContentPane(pane);
pack();?//?初始化窗體大小為正好盛放所有按鈕
}
//?各個按鈕觸發(fā)的事件
public?void?actionPerformed(ActionEvent?e)?{
/*
?*?如果是點(diǎn)擊數(shù)字按鈕那么先要判斷是否在此之前點(diǎn)擊了+、-、*、/、=,如果是那么com=true?如果沒有com=
?*?false;或者是否點(diǎn)擊數(shù)字鍵,如果是i?=?1,如果沒有?i?=?0;
?*/
if?(e.getSource()?==?number_key.one)?{
if?(com?||?i?==?0)?{
result.text.setText("1");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"1");
}
}?else?if?(e.getSource()?==?number_key.two)?{
if?(com?||?i?==?0)?{
result.text.setText("2");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"2");
}
}?else?if?(e.getSource()?==?number_key.three)?{
if?(com?||?i?==?0)?{
result.text.setText("3");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"3");
}
}?else?if?(e.getSource()?==?number_key.four)?{
if?(com?||?i?==?0)?{
result.text.setText("4");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"4");
}
}?else?if?(e.getSource()?==?number_key.five)?{
if?(com?||?i?==?0)?{
result.text.setText("5");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"5");
}
}?else?if?(e.getSource()?==?number_key.six)?{
if?(com?||?i?==?0)?{
result.text.setText("6");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"6");
}
}?else?if?(e.getSource()?==?number_key.seven)?{
if?(com?||?i?==?0)?{
result.text.setText("7");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"7");
}
}?else?if?(e.getSource()?==?number_key.eight)?{
if?(com?||?i?==?0)?{
result.text.setText("8");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"8");
}
}?else?if?(e.getSource()?==?number_key.nine)?{
if?(com?||?i?==?0)?{
result.text.setText("9");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
result.text.setText(text?+?"9");
}
}
/*
?*?對于0這個按鈕有一定的說法,在我的程序里不會出現(xiàn)如00000這樣的情況,我加了判斷條件就是
?*?如果text中的數(shù)值=0就要判斷在這個數(shù)值中是否有.存在?如果有那么就在原來數(shù)值基礎(chǔ)之上添?加0;否則保持原來的數(shù)值不變
?*/
else?if?(e.getSource()?==?number_key.zero)?{?//?result.text.getText()是得到text里內(nèi)容的意思
if?(com?||?i?==?0)?{
result.text.setText("0");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
if?(Float.parseFloat(text)??0?||?Float.parseFloat(text)??0)?{?//?Float.parseFloat(text)就是類型轉(zhuǎn)換了,下面都是一樣
result.text.setText(text?+?"0");
}?else?{
if?(text.trim().indexOf(".")?==?-1)?{
result.text.setText(text);
}?else?{
result.text.setText(text?+?"0");
}
}
}
}?else?if?(e.getSource()?==?number_key.ce)?{
result.text.setText("0");
i?=?0;
com?=?true;
//?text?=?"";
defbutton?=?0;
}
/*
?*?本程序不會讓一個數(shù)值中出現(xiàn)2個以上的小數(shù)點(diǎn).具體做法是:判斷是否已經(jīng)存在.存在就不添加,?不存在就添加.
?*/
else?if?(e.getSource()?==?number_key.point)?{
if?(com?||?i?==?0)?{
result.text.setText("0.");
com?=?false;
i?=?1;
}?else?{
text?=?result.text.getText();
if?(text.trim().indexOf(".")?==?-1)?{
result.text.setText(text?+?".");
}?else?{
result.text.setText(text);
}
}
}?//?獲得點(diǎn)擊+之前的數(shù)值
else?if?(e.getSource()?==?number_key.plus)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
symbol?=?1;
}?//?獲得點(diǎn)擊-之前的數(shù)值
else?if?(e.getSource()?==?number_key.sub)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
symbol?=?2;
}?//?獲得點(diǎn)擊*之前的數(shù)值
else?if?(e.getSource()?==?number_key.mul)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
System.out.println(defbutton);
symbol?=?3;
}?//?獲得點(diǎn)擊/之前的數(shù)值
else?if?(e.getSource()?==?number_key.div)?{
com?=?true;
i?=?0;
defbutton?=?Double.parseDouble(result.text.getText());
symbol?=?4;
}?else?if?(e.getSource()?==?number_key.equal)?{
switch?(symbol)?{
case?1:?{?//?計(jì)算加法
double?ad?=?defbutton
+?Double.parseDouble(result.text.getText());
result.text.setText(ad?+?"");
i?=?0;
text?=?"";
break;
}
case?2:?{?//?計(jì)算減法
double?ad?=?defbutton
-?Double.parseDouble(result.text.getText());
result.text.setText(String.valueOf(ad));
i?=?0;
text?=?"";
break;
}
case?3:?{?//?計(jì)算乘法
double?ad?=?defbutton
*?Double.parseDouble(result.text.getText());
result.text.setText(ad?+?"");
i?=?0;
text?=?"";
break;
}
case?4:?{?//?計(jì)算除法
double?ad?=?defbutton
/?Double.parseDouble(result.text.getText());
result.text.setText(ad?+?"");
i?=?0;
text?=?"";
break;
}
}
System.out.println(com);
}
System.out.println(result.text.getText());
}
@SuppressWarnings("deprecation")
public?static?void?main(String[]?args)?{
Jisuanqi?loveyou?=?new?Jisuanqi();
loveyou.show();
}
}
//?計(jì)算器數(shù)字按鈕定義面板
class?Number_Key?extends?JPanel?{
/**
?*?
?*/
private?static?final?long?serialVersionUID?=?1L;
JButton?zero?=?new?JButton("0");?//?數(shù)字鍵0
JButton?one?=?new?JButton("1");?//?數(shù)字鍵1
JButton?two?=?new?JButton("2");?//?數(shù)字鍵2
JButton?three?=?new?JButton("3");?//?數(shù)字鍵3
JButton?four?=?new?JButton("4");?//?數(shù)字鍵4
JButton?five?=?new?JButton("5");?//?數(shù)字鍵5
JButton?six?=?new?JButton("6");?//?數(shù)字鍵6
JButton?seven?=?new?JButton("7");?//?數(shù)字鍵7
JButton?eight?=?new?JButton("8");?//?數(shù)字鍵8
JButton?nine?=?new?JButton("9");?//?數(shù)字鍵9
JButton?plus?=?new?JButton("+");
JButton?sub?=?new?JButton("-");
JButton?mul?=?new?JButton("*");
JButton?div?=?new?JButton("/");
JButton?equal?=?new?JButton("=");
JButton?ce?=?new?JButton("清零");?//?置零鍵
JButton?point?=?new?JButton(".");
Number_Key()?{
setLayout(new?GridLayout(4,?4,?1,?1));?//?定義布局管理器為網(wǎng)格布局
setBackground(Color.blue);?//?設(shè)置背景顏色
//?添加按鈕
add(one);
add(two);
add(three);
add(four);
add(five);
add(six);
add(seven);
add(eight);
add(nine);
add(zero);
add(plus);
add(sub);
add(mul);
add(div);
add(point);
add(equal);
add(ce);
}
}
//?計(jì)算器顯示結(jié)果的窗體
class?Result?extends?JPanel?{
/**
?*?
?*/
private?static?final?long?serialVersionUID?=?1L;
//?text先是輸入和結(jié)果
JTextField?text?=?new?JTextField("0");
@SuppressWarnings("deprecation")
Result()?{?//?講輸入的數(shù)字或得到的結(jié)果在text的右邊顯示
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.enable(false);?//?文本框不能編輯
setLayout(new?BorderLayout());?//?設(shè)定布局管理器邊框布局
add(text,?BorderLayout.CENTER);?//?text放置在窗體的中間
}
}
運(yùn)行結(jié)果如下:
很簡單的應(yīng)用,為了節(jié)省字?jǐn)?shù),代碼注釋我就不加了
首先是顯示層,LoinWindow:
import?java.awt.FlowLayout;
import?java.awt.GridBagConstraints;
import?java.awt.GridBagLayout;
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.FocusEvent;
import?java.awt.event.FocusListener;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JLabel;
import?javax.swing.JOptionPane;
import?javax.swing.JPanel;
import?javax.swing.JTextField;
import?javax.swing.border.EmptyBorder;
public?class?LoinWindow?extends?JFrame?implements?ActionListener,?FocusListener?{
private?JPanel?mainPanel,?namePanel,?btnPanel;
private?JTextField?tfName,?tfPsd;
private?JButton?btnLogin,?btnCancel;
private?static?final?int?WIDTH?=?300;
private?static?final?int?HEIGHT?=?200;
private?LoginService?service?=?new?LoginService();
public?LoinWindow()?{
super("登錄窗體");
}
public?void?launch()?{
setSize(WIDTH,?HEIGHT);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
GridLayout?mainLayout?=?new?GridLayout(2,?1);
mainLayout.setVgap(10);
mainPanel?=?new?JPanel(mainLayout);
GridBagLayout?nameLayout?=?new?GridBagLayout();
namePanel?=?new?JPanel(nameLayout);
namePanel.setBorder(new?EmptyBorder(10,?10,?10,?10));
JLabel?nameLabel?=?new?JLabel("姓名:");
tfName?=?new?JTextField();
JLabel?psdLabel?=?new?JLabel("密碼:");
tfPsd?=?new?JTextField();
JLabel?blank?=?new?JLabel("?");
namePanel.add(nameLabel);
namePanel.add(tfName);
namePanel.add(blank);
namePanel.add(psdLabel);
namePanel.add(tfPsd);
GridBagConstraints?s?=?new?GridBagConstraints();
s.fill?=?GridBagConstraints.BOTH;
s.gridwidth?=?1;
s.weightx?=?0;
s.weighty?=?0;
nameLayout.setConstraints(nameLabel,?s);
s.gridwidth?=?0;
s.weightx?=?1;
s.weighty?=?0;
nameLayout.setConstraints(tfName,?s);
s.gridwidth?=?0;
s.weightx?=?4;
s.weighty?=?0;
nameLayout.setConstraints(blank,?s);
s.gridwidth?=?1;
s.weightx?=?0;
s.weighty?=?0;
nameLayout.setConstraints(psdLabel,?s);
s.gridwidth?=?3;
s.weightx?=?1;
s.weighty?=?0;
nameLayout.setConstraints(tfPsd,?s);
FlowLayout?btnLayout?=?new?FlowLayout();
btnLayout.setAlignment(FlowLayout.CENTER);
btnPanel?=?new?JPanel(btnLayout);
btnLogin?=?new?JButton("確定");
btnCancel?=?new?JButton("取消");
btnPanel.add(btnLogin);
btnPanel.add(btnCancel);
btnCancel.addActionListener(this);
btnLogin.addActionListener(this);
mainPanel.add(namePanel);
mainPanel.add(btnPanel);
setContentPane(mainPanel);
tfName.addFocusListener(this);
tfPsd.addFocusListener(this);
pack();
setSize(WIDTH,?HEIGHT);
setLocationRelativeTo(null);
}
@Override
public?void?actionPerformed(ActionEvent?e)?{
Object?source?=?e.getSource();
if(source?==?btnCancel)?{
System.exit(0);
}?else?if(source?==?btnLogin)?{
String?username?=?tfName.getText();
String?password?=?tfPsd.getText();
boolean?success?=?service.login(username,?password);
if(success)?{
warn("成功",?"登錄成功!");
}?else?{
warn("失敗",?"您輸入的用戶名或密碼錯誤?!");
}
}
}
@Override
public?void?focusGained(FocusEvent?arg0)?{
}
@Override
public?void?focusLost(FocusEvent?e)?{
Object?source?=?e.getSource();
if(source?==?tfName)?{
String?username?=?tfName.getText();
try?{
service.matchUsername(username);
}?catch?(LoginException?e1)?{
warn("驗(yàn)證錯誤",?e1.getMessage());
}
}?else?if(source?==?tfPsd)?{
String?password?=?tfPsd.getText();
try?{
service.matchPassword(password);
}?catch?(LoginException?e1)?{
warn("驗(yàn)證錯誤",?e1.getMessage());
}
}
}
private?void?warn(String?title,?String?msg)?{
JOptionPane.showMessageDialog(null,?msg,?title,?JOptionPane.INFORMATION_MESSAGE);
}
public?static?void?main(String[]?args)?{
new?LoinWindow().launch();
}
}
然后是模型層:LoginDao
public?class?LoginDao?{
public?boolean?login(String?username,?String?password)?{
if(username.equals("admin")??password.equals("12345"))?{
return?true;
}
return?false;
}
}
LoginService
import?java.util.regex.Pattern;
public?class?LoginService?{
private?static?final?Pattern?LOGIN_PATTERN?=?Pattern.compile("[a-zA-Z]+");
private?static?final?Pattern?PASSWORD_PATTERN?=?Pattern.compile("[1-9]+");
private?LoginDao?dao?=?new?LoginDao();
public?boolean?matchUsername(String?username)?throws?LoginException?{
if(null?==?username?||?username.isEmpty())?{
return?false;
}
if(!LOGIN_PATTERN.matcher(username).matches())?{
throw?new?LoginException("您輸入的用戶名不合法,請輸入英文!");
}
return?true;
}
public?boolean?matchPassword(String?password)?throws?LoginException?{
if(null?==?password?||?password.isEmpty())?{
return?false;
}
if(!PASSWORD_PATTERN.matcher(password).matches())?{
throw?new?LoginException("您輸入的密碼不合法,請輸入數(shù)字!");
}
return?true;
}
public?boolean?login(String?username,?String?password)?{
if(null?==?username?||?username.isEmpty())?{
return?false;
}
if(null?==?password?||?password.isEmpty())?{
return?false;
}
if(!dao.login(username,?password))?{
return?false;
}
return?true;
}
}
LoginException
public?class?LoginException?extends?Exception?{
public?LoginException(String?arg0)?{
super(arg0);
}
}
不知道分層設(shè)計(jì)思想是不是我想的這樣
import java.io.*;
public class FileLineNumber {
public static void main(String[] args) throws Exception {
appendLineNumber(new File("FileLineNumber.java"), new File("a.txt"));
}
public static void appendLineNumber(File from, File to) throws Exception {
BufferedReader in = new BufferedReader(new FileReader(from));
StringBuilder sb = new StringBuilder();
String t;
int lineNumber = 1;
while((t = in.readLine()) != null) {
sb.append(lineNumber + " ");
sb.append(t);
sb.append(System.getProperty("line.separator"));
lineNumber++;
}
in.close();
BufferedWriter out = new BufferedWriter(new FileWriter(to));
out.write(sb.toString());
out.close();
}
}
新聞標(biāo)題:java實(shí)現(xiàn)功能實(shí)現(xiàn)代碼 代碼實(shí)現(xiàn)的功能
網(wǎng)站地址:http://muchs.cn/article24/hgsice.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站營銷、、動態(tài)網(wǎng)站、服務(wù)器托管、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)