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
點(diǎn)軍網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái)到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
你試下吧..不懂..Call我
JAVA彈窗,有下面常見(jiàn)的2種方法實(shí)現(xiàn):
通過(guò)JDialog(模式窗口) 類來(lái)實(shí)現(xiàn).里面的寫(xiě)法類似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í),提示用戶, 是否要保存已經(jīng)更改后的內(nèi)容. ?如果用戶沒(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專門(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();//窗口銷毀
System.exit(0);//JVM虛擬機(jī)退出
}
}
運(yùn)行效果圖:
【教程iapp】通知欄制作教程①
+關(guān)注學(xué)渣,1級(jí) 樓主
發(fā)表于2018-10-153476次閱讀 玩機(jī)美化 〉
小白易學(xué)
超級(jí)簡(jiǎn)單
教程開(kāi)始!
首先需要準(zhǔn)備的工具:iapp(別問(wèn)我為什么需要這個(gè),我也不知道)
功能簡(jiǎn)介:每次進(jìn)入軟件都會(huì)跳出通知欄提醒用戶!
s id = 2977
//通知id,很重要,如果不懂不要?jiǎng)h除!
cls("android.app.Notification$Builder",通知類)
java(通知管理器,activity,"android.content.Context.getSystemService","String","notification")
javanew(通知,通知類,"Context",activity)
javax(通知,通知,通知類,"setSmallIcon","int",17301651)
//設(shè)置小圖標(biāo)(不設(shè)置大圖就是大圖標(biāo))
javax(通知,通知,通知類,"setContentTitle","CharSequence","iAPP通知欄")
//設(shè)置標(biāo)題
javax(通知,通知,通知類,"setContentText","CharSequence","歡迎你的使用!希望本教程能給你帶來(lái)幫助!")
//設(shè)置內(nèi)容
javax(通知,通知,通知類,"setTicker","CharSequence","")
javax(通知,通知,通知類,"setAutoCancel","boolean",true)
javax(通知,通知,通知類,"setDefaults","int",-1)
//設(shè)置通知提示模式,-1所有都使用默認(rèn),1系統(tǒng)默認(rèn)響鈴,2系統(tǒng)默認(rèn)震動(dòng),4系統(tǒng)默認(rèn)閃光(部分手機(jī)不支持)
time(4,時(shí)間戳)
javax(通知,通知,通知類,"setWhen","long",時(shí)間戳)
javax(通知對(duì)象,通知,通知類,"build")
java(null,通知管理器,"android.app.NotificationManager.notify","int",id,"android.app.Notification",通知對(duì)象)
首先,給你看一個(gè)簡(jiǎn)單的代碼例子先:
import java.util.*;
public class Test {
public static void main(String[] args) {
Date myDate = new Date();
Timer timer = new Timer();
timer.schedule(new MyTask(), myDate);
}
static class MyTask extends java.util.TimerTask {
public void run() {
System.out.println("________");
}
}
}
這段代碼的作用是:在當(dāng)前時(shí)間打印出“________”。
這里用到了Timer的schedule方法,該方法的使用有如下兩種情況:
schedule(TimerTask task, Date time)設(shè)定指定任務(wù)task在指定時(shí)間time執(zhí)行;
schedule(TimerTask task, long delay, long period)方法設(shè)定指定任務(wù)task在指定延遲delay后進(jìn)行固定延遲peroid的執(zhí)行。
scheduleAtFixedRate(TimerTask task, long delay, long period)方法設(shè)定指定任務(wù)task在指定延遲delay后進(jìn)行固定頻率peroid的執(zhí)行。
這里要注意一點(diǎn):如果是用后面兩個(gè)方法的話,則要通過(guò)timer的cancel()方法結(jié)束其運(yùn)行,否則會(huì)一直循環(huán)執(zhí)行下去。
那么,回到你的題目,只要將Date time參數(shù)改一下、將上面的run()方法的方法體改一下就行了。
記得給我分哦~~^_^