本文目錄一覽:
Java如何實現關閉一個窗口彈出另外一個窗口
在Java中,對窗口任何操作都會對應的監聽事件,故要實現關閉一個窗口時彈出另外一個窗口,只需要在該關閉的窗口的監聽事件中添加彈窗事件即可。
具體實現如下:
this.addWindowListener(new
WindowAdapter(){
@Override
public
void
windowClosing(WindowEvent
e)
{
setVisible(false);
new
JFrame(“新窗口”);
}});
在JavaGUI編程中,關閉窗口彈出新窗口是很常見的動作,比如一個窗口的業務操作完成了,需要跳轉到另一個窗口繼續執行,此時就需要關閉舊窗口並彈出新窗事件。值得注意的地方時,有時候的關閉往往只是暫時的將舊窗口暫時隱藏,而不是真的關閉,因為之後可能還會繼續用到,為了節省開銷,暫時的隱藏有利於提供效率。
怎麼樣在java中彈出一個messagebox
在java中實現一個消息框, 常見的有兩種方式
第一種方法: JOptionPane 類. 創建1個彈窗.
例一:簡單的消息提示框
JOptionPane.showMessageDialog(null, “消息提示”);
2.例二:帶警告圖片的消息提示框
JOptionPane.showMessageDialog(null, “提示消息”, “標題”,JOptionPane.WARNING_MESSAGE);
第二種方法 彈窗JDialog 設置setModal(true); 也可以實現. 類似於寫JFrame
兩者區別在於:
JOptionPane 代碼簡短, 適應一些普通需求, 比如彈出消息提示, 彈出警告信息, 提示用戶輸入, 提示用戶選擇, 等簡單的場景
JDialog 代碼略長, 組件需要自行定義. 滿足一些複雜的需求. 比如多個輸入框 ,多個按鈕等
HMCL啟動器打開時出現java彈窗,點開沒響應
1、確認你的電腦是否安裝了JAVA程序,如果沒有就去裝一個。本站下載的我的世界程序中都會集成JAVA程序,直接在根目錄下找到安裝即可(找到文件夾下一個茶杯圖標的就是)。
2、如果即使安裝了JAVA仍然提示路徑錯誤,那麼可能是你的JAVA路徑設置不正確亦或是JAVA安裝不正確。以旋律啟動器為例檢查JAVA路徑中的路徑是否存在問題。
一般情況下在安裝JAVA時不要更改其默認路徑的話是與啟動器的默認路徑一樣的不會出什麼問題,但如果你更改過路徑的話就會讓啟動器無法識別了。通常情況下正確的默認路徑為:
C:Program FilesJavajre7binjavaw.exe
而另外一點特別要注意的是64位操作系統的用戶C盤中是存在著2個Program Files文件夾的,其中一個後面跟著(x86)這代表著這個文件夾中裝著32位版本的系統程序。但64位系統必須要使用64位的JAVA才行,在選擇遊戲路徑時要特別注意這點。
3、如果經過前兩步依舊無法打開遊戲,那麼就有很大的可能是你的JAVA程序出現了問題,建議先將其卸載(在控制面板中的程序和功能中刪除,不要直接刪除C盤文件),之後前往JAVA官網下載最新版本的JAVA程序,網頁程序會自動根據你的系統信息彈出相應版本的下載鏈接。
JAVA的彈窗怎麼做?
JAVA彈窗,有下面常見的2種方法實現:
通過JDialog(模式窗口) 類來實現.裡面的寫法類似JFrame
重點方法提示: setModal(true);
//當設置為true表示,如果不關閉這個彈窗,那麼主界面的其他組件都無法操作,該彈窗置於其他窗口的前面
//當設置為false表示,可以繞開本彈窗,對主界面的其他組件進行操作
優點: 功能強大, 擴展性強
缺點: 代碼量大.
示例圖
通過JOptionPane(提示框) 來實現
效果圖如下
優點: 代碼量少,簡單,方便, 普通場景已經夠用
缺點: 擴展性不夠, 複雜邏輯難以實現.
下面寫一個具體案例
場景:當用於對文本域的文字,進行操作後,那麼退出時,提示用戶, 是否要保存已經更改後的內容. 如果用戶沒有修改內容,那麼不用提示
重點代碼
addDocumentListener–用於實現對文本內容發生改變時進行響應
addWindowListener—用於實現對窗口進行操作時進行響應
完整代碼如下
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(“床前明月光”);//文本域的文字–可以通過IO載入txt文檔的文字
jta.setFont(new Font(“宋體”,Font.BOLD, 20));//文本域的字體
jta.setLineWrap(true);//設置自動換行
jta.getDocument().addDocumentListener(this);//添加文檔變化事件的響應.比如修改,刪除等
JScrollPane jsp = new JScrollPane(jta);//滾動面板(當文字太多時,顯示滾動條)
add(jsp);
setTitle(“主窗口”);//標題
setSize(300, 260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//點擊窗口的關閉按鈕時,執行windowClosing的代碼
addWindowListener(this);
setVisible(true);//窗口可見
}
public static void main(String[] args) {
new JDDemo();
}
//實現WindowListener介面,需要重寫下面的6個方法, windowClosing專門處理關閉時的方法
public void windowOpened(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
if(flag){
int n = JOptionPane.showConfirmDialog(null, “已經更改了內容,需要保存後再退出嗎?”, “提示”,JOptionPane.YES_NO_OPTION);
//n等於-1表示關閉了彈出的對話框等情況的默認值
//n等於0(JOptionPane.YES_OPTION)表示選擇了Yes
//n等於1(JOptionPane.NO_OPTION)表示選擇了No
if(n==JOptionPane.YES_OPTION){
//把文字保存到文件的代碼省略…
System.out.println(“正在使用IO進行保存..ing”);
closeFrame();//關閉窗口並退出
}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) {
}
//文檔事件,有下面三個,如果觸發其中一個,都可以認為修改了文檔,所以需要在退出時進行提示,是否保存
public void insertUpdate(DocumentEvent e) {//插入
flag=true;
}
public void removeUpdate(DocumentEvent e) {//刪除
flag=true;
}
public void changedUpdate(DocumentEvent e) {//改變
flag=true;
}
//關閉窗口的方法
public void closeFrame(){
this.setVisible(false);//窗口不可見
this.dispose();//窗口銷毀
System.exit(0);//JVM虛擬機退出
}
}
運行效果圖:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159504.html