需要引入下面的名稱(chēng)空間javax.swing.JOptionPane JOptionPane
成都創(chuàng)新互聯(lián)長(zhǎng)期為上1000+客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為克山企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),克山網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
public JOptionPane(Object message,
int messageType,
int optionType,
Icon icon,
Object[] options,
Object initialValue)在指定最初選擇的選項(xiàng)的前提下,創(chuàng)建一個(gè)顯示消息的 JOptionPane 的實(shí)例,使其具有指定的消息類(lèi)型、圖標(biāo)和選項(xiàng)。
參數(shù):
message – 要顯示的 Object
messageType – 要顯示的消息類(lèi)型:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE
optionType – 要在窗格中顯示的選項(xiàng):DEFAULT_OPTION、YES_NO_OPTION、YES_NO_CANCEL_OPTION、OK_CANCEL_OPTION
icon – 要顯示的圖標(biāo)圖像
options – 用戶(hù)可以選擇的選項(xiàng)
initialValue – 最初選擇的選項(xiàng);如果為 null,則不做最初選擇;只有在使用 options 時(shí)才有意義
if(true){
out.println("scriptalert('彈出來(lái)了');/script");
}
// 上面這個(gè)是寫(xiě)在JSP 頁(yè)面上的.
"要求是(若用戶(hù)名或密碼為空(包括空格字符)則提示"
你的意思是不是你在做登陸的時(shí)候要求用戶(hù)輸入用戶(hù)名和密碼? 而且不能為空?
如果是這樣的話,你可以在 提交 按鈕上加一句 onclick ='checkinfo()' .調(diào)用一個(gè) JS來(lái)進(jìn)行判定.
JS可以寫(xiě)成...
if(document.getElementByID("用戶(hù)名").value==null || document.getElementByID("用戶(hù)名").value=="")
{
alert("請(qǐng)輸入用戶(hù)名");
retrun false ;
}else if(document.getElementByID("密碼").value==null || document.getElementByID("密碼").value=="")
{
alert("請(qǐng)輸入密碼");
retrun false ;
}else {
return true ;
}
這樣的話,在你點(diǎn)提交的時(shí)候,會(huì)先進(jìn)行JS的驗(yàn)證, 如果有其中一項(xiàng)沒(méi)有填寫(xiě)則回彈出對(duì)應(yīng)的提示框,并返回false.表單提交不了.......否則返回一個(gè)真值, 這個(gè)時(shí)候你的 表單就能順利提交了....
import?java.awt.BorderLayout;
import?java.awt.Container;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.JFrame;
import?javax.swing.JOptionPane;
public?class?showMessage?extends?JFrame{
public?showMessage(){
Container?c?=this.getContentPane();
JButton?jb?=?new?JButton("點(diǎn)我出現(xiàn)message");
c.add(jb,BorderLayout.NORTH);
setSize(100,?80);
setVisible(true);
jb.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?arg0)?{
JOptionPane.showMessageDialog(null,?"沒(méi)錯(cuò),我就是神奇的Message!");
}
});
}
public?static?void?main(String[]?args)?{
new?showMessage();
}
}
JAVA彈窗,有下面常見(jiàn)的2種方法實(shí)現(xiàn):
通過(guò)JDialog(模式窗口) 類(lèi)來(lái)實(shí)現(xiàn).里面的寫(xiě)法類(lèi)似JFrame
重點(diǎn)方法提示:?setModal(true);
//當(dāng)設(shè)置為true表示,如果不關(guān)閉這個(gè)彈窗,那么主界面的其他組件都無(wú)法操作,該彈窗置于其他窗口的前面
//當(dāng)設(shè)置為false表示,可以繞開(kāi)本彈窗,對(duì)主界面的其他組件進(jìn)行操作
優(yōu)點(diǎn): 功能強(qiáng)大, ?擴(kuò)展性強(qiáng)
缺點(diǎn): 代碼量大.
示例圖
通過(guò)JOptionPane(提示框) 來(lái)實(shí)現(xiàn)
效果圖如下
優(yōu)點(diǎn): 代碼量少,簡(jiǎn)單,方便, 普通場(chǎng)景已經(jīng)夠用
缺點(diǎn): 擴(kuò)展性不夠, 復(fù)雜邏輯難以實(shí)現(xiàn).
下面寫(xiě)一個(gè)具體案例
場(chǎng)景:當(dāng)用于對(duì)文本域的文字,進(jìn)行操作后,那么退出時(shí),提示用戶(hù), 是否要保存已經(jīng)更改后的內(nèi)容. ?如果用戶(hù)沒(méi)有修改內(nèi)容,那么不用提示
重點(diǎn)代碼
addDocumentListener--用于實(shí)現(xiàn)對(duì)文本內(nèi)容發(fā)生改變時(shí)進(jìn)行響應(yīng)
addWindowListener---用于實(shí)現(xiàn)對(duì)窗口進(jìn)行操作時(shí)進(jìn)行響應(yīng)
完整代碼如下
import?java.awt.Font;
import?java.awt.event.*;
import?javax.swing.*;
import?javax.swing.event.*;
public?class?JDDemo?extends?JFrame?implements?DocumentListener,WindowListener{
JTextArea?jta;
boolean?flag;
public?JDDemo()?{
jta?=?new?JTextArea();//文本域
jta.setText("床前明月光");//文本域的文字--可以通過(guò)IO加載txt文檔的文字
jta.setFont(new?Font("宋體",Font.BOLD,?20));//文本域的字體
jta.setLineWrap(true);//設(shè)置自動(dòng)換行
jta.getDocument().addDocumentListener(this);//添加文檔變化事件的響應(yīng).比如修改,刪除等
JScrollPane?jsp?=?new?JScrollPane(jta);//滾動(dòng)面板(當(dāng)文字太多時(shí),顯示滾動(dòng)條)
add(jsp);
setTitle("主窗口");//標(biāo)題
setSize(300,?260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//點(diǎn)擊窗口的關(guān)閉按鈕時(shí),執(zhí)行windowClosing的代碼
addWindowListener(this);
setVisible(true);//窗口可見(jiàn)
}
public?static?void?main(String[]?args)?{
new?JDDemo();
}
//實(shí)現(xiàn)WindowListener接口,需要重寫(xiě)下面的6個(gè)方法,?windowClosing專(zhuān)門(mén)處理關(guān)閉時(shí)的方法
public?void?windowOpened(WindowEvent?e)?{
}
public?void?windowClosing(WindowEvent?e)?{
if(flag){
int?n?=?JOptionPane.showConfirmDialog(null,?"已經(jīng)更改了內(nèi)容,需要保存后再退出嗎?",?"提示",JOptionPane.YES_NO_OPTION);
//n等于-1表示關(guān)閉了彈出的對(duì)話框等情況的默認(rèn)值
//n等于0(JOptionPane.YES_OPTION)表示選擇了Yes
//n等于1(JOptionPane.NO_OPTION)表示選擇了No
if(n==JOptionPane.YES_OPTION){
//把文字保存到文件的代碼省略...
System.out.println("正在使用IO進(jìn)行保存..ing");
closeFrame();//關(guān)閉窗口并退出
}else?if(n==JOptionPane.NO_OPTION){
System.out.println("放棄保存修改.馬上退出");
closeFrame();
}
}else{
closeFrame();
}
}
public?void?windowClosed(WindowEvent?e)?{
}
public?void?windowIconified(WindowEvent?e)?{
}
public?void?windowDeiconified(WindowEvent?e)?{
}
public?void?windowActivated(WindowEvent?e)?{
}
public?void?windowDeactivated(WindowEvent?e)?{
}
//文檔事件,有下面三個(gè),如果觸發(fā)其中一個(gè),都可以認(rèn)為修改了文檔,所以需要在退出時(shí)進(jìn)行提示,是否保存
public?void?insertUpdate(DocumentEvent?e)?{//插入
flag=true;
}
public?void?removeUpdate(DocumentEvent?e)?{//刪除
flag=true;
}
public?void?changedUpdate(DocumentEvent?e)?{//改變
flag=true;
}
//關(guān)閉窗口的方法
public?void?closeFrame(){
this.setVisible(false);//窗口不可見(jiàn)
this.dispose();//窗口銷(xiāo)毀
System.exit(0);//JVM虛擬機(jī)退出
}
}
運(yùn)行效果圖:
jsp servlet?..你可以在Servlet中..reques.setAttribute("error","賬號(hào)密碼錯(cuò)誤!");然后在jsp中.判斷是否存在這個(gè)值..再使用javascript彈出咯..jsp:導(dǎo)入包:%@taglib prefix="c" uri=" "%判斷這樣寫(xiě):c:if test="${not empty error}"?0?2 ?0?2 ?0?2 input type="hidden" value="${error}" id="error_id"?0?2 ?0?2 ?0?2 script type="text/javascript"?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2!--?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 alert(document.getElementById("error_id").value);?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2//--?0?2 ?0?2 ?0?2 /script/c:if
你試下吧..不懂..Call我
可以使用JoptionPane:
有幾種提示框:
第一種:
JOptionPane.showMessageDialog(jPanel,?"提示消息",?"標(biāo)題",JOptionPane.WARNING_MESSAGE);
第二種:
int?n?=?JOptionPane.showConfirmDialog(null,?"你高興嗎?",?"標(biāo)題",JOptionPane.YES_NO_OPTION);//返回的是按鈕的index ?i=0或者1
第三種:
Object[]?obj2?={?"足球",?"籃球",?"乒乓球"?};
String?s?=?(String)?JOptionPane.showInputDialog(null,"請(qǐng)選擇你的愛(ài)好:\n",?"愛(ài)好",?JOptionPane.PLAIN_MESSAGE,?new?ImageIcon("icon.png"),?obj2,?"足球");