真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java彈窗源代碼 java實(shí)現(xiàn)彈窗

Java代碼執(zhí)行時(shí)自動彈出本地CMD窗口并窗口顯示代碼中需要輸出的字符內(nèi)容。求助??!

利用java的管道重定義。核心代碼如下,剩下自己組織

成都創(chuàng)新互聯(lián)公司,專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站開發(fā)、展示型網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。

Process process = Runtime.getRuntime().exec("cmd");

PrintWriter out = new PrintWriter(process.getOutputStream());

String cmd ; //你的cmd命令

InputStream is = process.getInputStream() //cmd返回出來的信息

out.println(cmd); //輸入你的命令

out.flush(); //寫到控制臺

JAVA的彈窗怎么做?

JAVA彈窗,有下面常見的2種方法實(shí)現(xiàn):

通過JDialog(模式窗口) 類來實(shí)現(xiàn).里面的寫法類似JFrame

重點(diǎn)方法提示:?setModal(true);

//當(dāng)設(shè)置為true表示,如果不關(guān)閉這個(gè)彈窗,那么主界面的其他組件都無法操作,該彈窗置于其他窗口的前面

//當(dāng)設(shè)置為false表示,可以繞開本彈窗,對主界面的其他組件進(jìn)行操作

優(yōu)點(diǎn): 功能強(qiáng)大, ?擴(kuò)展性強(qiáng)

缺點(diǎn): 代碼量大.

示例圖

通過JOptionPane(提示框) 來實(shí)現(xiàn)

效果圖如下

優(yōu)點(diǎn): 代碼量少,簡單,方便, 普通場景已經(jīng)夠用

缺點(diǎn): 擴(kuò)展性不夠, 復(fù)雜邏輯難以實(shí)現(xiàn).

下面寫一個(gè)具體案例

場景:當(dāng)用于對文本域的文字,進(jìn)行操作后,那么退出時(shí),提示用戶, 是否要保存已經(jīng)更改后的內(nèi)容. ?如果用戶沒有修改內(nèi)容,那么不用提示

重點(diǎn)代碼

addDocumentListener--用于實(shí)現(xiàn)對文本內(nèi)容發(fā)生改變時(shí)進(jìn)行響應(yīng)

addWindowListener---用于實(shí)現(xiàn)對窗口進(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("床前明月光");//文本域的文字--可以通過IO加載txt文檔的文字

jta.setFont(new?Font("宋體",Font.BOLD,?20));//文本域的字體

jta.setLineWrap(true);//設(shè)置自動換行

jta.getDocument().addDocumentListener(this);//添加文檔變化事件的響應(yīng).比如修改,刪除等

JScrollPane?jsp?=?new?JScrollPane(jta);//滾動面板(當(dāng)文字太多時(shí),顯示滾動條)

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);//窗口可見

}

public?static?void?main(String[]?args)?{

new?JDDemo();

}

//實(shí)現(xiàn)WindowListener接口,需要重寫下面的6個(gè)方法,?windowClosing專門處理關(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)閉了彈出的對話框等情況的默認(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);//窗口不可見

this.dispose();//窗口銷毀

System.exit(0);//JVM虛擬機(jī)退出

}

}

運(yùn)行效果圖:

請問能不能幫我寫一個(gè)Java的聊天窗口文件源代碼,不要很復(fù)雜,只要能運(yùn)行,聊天就行了!我用淘寶金幣換,謝

話說網(wǎng)上真的好多啊...

package client;

import java.awt.Color;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.Socket;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class ClientFrame extends JFrame{

private JTextArea allmsg;

private JTextField welcome,copyright,chatmsg;

private JButton send;

private JScrollPane js;

private boolean isConnected = true;

public DataOutputStream out;

public DataInputStream in;

public Socket s = null;

String nic; /* -- 保存用戶昵稱 --*/

/**

* 初始化客戶端資源

* 1.獲取從LoginFrame傳遞過來的參數(shù)

* 2.初始化界面元素

* 3.初始化通信所需要的資源 EG:輸入/輸出流(DataInputStream/DataOutputStream)

* */

public ClientFrame(String name,Socket socket)

{

this.setSize(310,660);

this.setLocation(290,50);

this.setTitle("聊天室客戶端"+name+"");/* -- 指定窗口的標(biāo)題 --*/

this.s = socket;/* -- 接收從LoginFrame中傳遞過來的Socket --*/

this.nic = name+" 說: ";

welcome = new JTextField(" "+name+" 歡迎您來到聊天室 ",100);

welcome.setBackground(Color.blue);

welcome.setEnabled(false);

copyright = new JTextField(" ----- all copyright @ TOP-king -----");

copyright.setEnabled(false);

allmsg = new JTextArea();

allmsg.setEditable(false);

allmsg.append(" 系統(tǒng)消息: 歡迎登錄在線聊天室 \n");

js = new JScrollPane(allmsg);//為JTextArea添加滾動條

chatmsg = new JTextField("在此輸入聊天信息");

chatmsg.addActionListener(new listen());

send = new JButton("發(fā)送");

send.addActionListener(new listen());/* -- 添加事件監(jiān)聽器 --*/

try {

out = new DataOutputStream(s.getOutputStream());

in = new DataInputStream(s.getInputStream());

} catch (IOException e) {JOptionPane.showMessageDialog(null, "系統(tǒng)異常","錯(cuò)誤",JOptionPane.OK_CANCEL_OPTION);}

addcomponettocontainer();

/* -- 當(dāng)用戶關(guān)閉窗口時(shí)進(jìn)行相關(guān)的處理 eg:Socket Data(Input/Output)Stream 的關(guān)閉--*/

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we)

{

sendmsg("quitlogout");/* -- 向服務(wù)器端發(fā)送關(guān)閉信息 --*/

isConnected = false;

destory();/* -- 銷毀窗口資源 --*/

}

});

new Thread(new linread()).start();/* -- 啟動讀取信息線程 --*/

}

public void addcomponettocontainer()

{

Container c = this.getContentPane();

c.setLayout(null);

welcome.setBounds(75,10,150,20);

js.setBounds(10,50,280,500);

chatmsg.setBounds(10,560,180,30);

send.setBounds(220,560,70,30);

copyright.setBounds(10,600,280,20);

c.add(welcome);

c.add(js);

c.add(chatmsg);

c.add(send);

c.add(copyright);

this.setVisible(true);

this.setResizable(false);

}

class listen implements ActionListener

{

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getSource()==send||e.getSource()==chatmsg)

{

String msg = chatmsg.getText().trim();

if("".equals(msg))

{

JOptionPane.showMessageDialog(null,"發(fā)送信息不能為空!","錯(cuò)誤",JOptionPane.OK_OPTION);

}

else

{sendmsg((new Date()).toLocaleString()+"\n"+nic+msg+"\n");chatmsg.setText("");}

}

}

}

/* -- 向服務(wù)器端發(fā)送信息 --*/

public void sendmsg(String m)

{

if(isConnected)//如果socket的輸出流沒關(guān)閉

{

try {

out.writeUTF(m);

} catch (IOException e) {

JOptionPane.showMessageDialog(null,"發(fā)送信息失敗!(系統(tǒng)異常)","錯(cuò)誤",JOptionPane.OK_OPTION);

}

}

else

{

JOptionPane.showMessageDialog(null,"發(fā)送信息失敗!(服務(wù)器關(guān)閉/網(wǎng)絡(luò)故障)","錯(cuò)誤",JOptionPane.OK_OPTION);

}

}

/* -- 讀取信息線程 --*/

class linread implements Runnable

{

public void run()

{

read();

}

public void read()

{

while(isConnected)

{

try {

String msg = in.readUTF();

if("SYSTEM_CLOSED".equals(msg))

{

JOptionPane.showMessageDialog(null,"讀取消息失敗(服務(wù)器關(guān)閉/網(wǎng)絡(luò)故障)!","錯(cuò)誤",JOptionPane.OK_OPTION);

isConnected = false;

}

else

allmsg.append(msg+"\n");

} catch (IOException e) {

}

}//end while

JOptionPane.showMessageDialog(null,"讀取消息失敗(服務(wù)器關(guān)閉/網(wǎng)絡(luò)故障)!","錯(cuò)誤",JOptionPane.OK_OPTION);

}//end read()

}

public void destory()

{

try {

this.out.close();

this.in.close();

this.s.close();

} catch (IOException e) {

}

this.dispose();

}

}

======================================================

package client;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

public class LoginFrame extends JFrame{

private JTextField name;

private JTextField ip;

private JButton ok,cancle;

public Socket socket;

public LoginFrame()

{

super("登錄框");

this.setSize(400,80);

this.setLocation(100,100);

name = new JTextField("昵稱");

ip = new JTextField("127.0.0.1");

ok = new JButton("登錄");

cancle = new JButton("取消");

ok.addActionListener(new listenEvent());

cancle.addActionListener(new listenEvent());

//建立容器

addcomponettocontainer();

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

/**

* 建立容器及控件

*/

public void addcomponettocontainer()

{

Container c = this.getContentPane();

c.setLayout(null);

name.setBounds(10,10,100,30);

ip.setBounds(120,10,100,30);

ok.setBounds(230,10,70,30);

cancle.setBounds(310,10,70,30);

c.add(name);

c.add(ip);

c.add(ok);

c.add(cancle);

this.setVisible(true);

this.setResizable(false);

}

public class listenEvent implements ActionListener

{

public void actionPerformed(ActionEvent event) {

// TODO Auto-generated method stub

if(event.getSource()==ok)

{

String n = name.getText().trim();

String i = ip.getText().trim();

if("".equals(n)||"".equals(i))

{

JOptionPane.showMessageDialog(null,"昵稱、IP不能夠?yàn)榭?","錯(cuò)誤",JOptionPane.OK_OPTION);

}

else{login(n,i);}

}

if(event.getSource()==cancle)

{

name.setText("");

ip.setText("");

}

}

}

/**

* 進(jìn)行登錄

* @param name

* @param ip

*/

public void login(String name,String ip)

{

try {

socket = new Socket(ip,7777);

DataOutputStream out = new DataOutputStream(socket.getOutputStream());

out.writeUTF(name);

out.flush();//強(qiáng)制輸出緩存中的內(nèi)容

//out.close();

new ClientFrame(name,socket);

destroywindow();

} catch (UnknownHostException e) {

JOptionPane.showMessageDialog(null,"找不到主機(jī)地址(IP錯(cuò)誤/網(wǎng)絡(luò)故障)!","錯(cuò)誤",JOptionPane.OK_OPTION);

} catch (IOException e) {

}

}

public void destroywindow()

{

this.dispose();

}

public static void main(String[] args)

{

new LoginFrame();

}

}

==================================================

package server;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.ArrayList;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class ServerFrame extends JFrame{

/**

*

*/

private static final long serialVersionUID = 1L;

private JTextArea allmsg;

private JTextField currnum,totalnum,copyright,chatmsg;

private JButton send;

private JScrollPane js;

int num1,num2,port;/* -- num1:當(dāng)前在線人數(shù) num2:總上線人數(shù) port:服務(wù)端口號 --*/

private ServerSocket ss;

ArrayListuser lists;//存放所有在線用戶

public ServerFrame()

{

super("聊天室服務(wù)器端");

this.setSize(310,660);

this.setLocation(200,50);

lists = new ArrayListuser();

num1 = num2 =0;

port = 7777;

currnum = new JTextField(" 當(dāng)前在線人數(shù): "+num1);

currnum.setEnabled(false);

totalnum = new JTextField(" 上線總?cè)藬?shù): "+num2);

totalnum.setEnabled(false);

copyright = new JTextField(" ----- all copyright @ TOP-king -----");

copyright.setEnabled(false);

allmsg = new JTextArea();

allmsg.append(" --------------- 系統(tǒng)消息 --------------\n");

allmsg.setEditable(false);

allmsg.setLineWrap(true); //允許自動換行

js = new JScrollPane(allmsg);//為JTextArea添加滾動條

chatmsg = new JTextField("在此輸入系統(tǒng)信息");

chatmsg.addActionListener(new ActionListener(){

@SuppressWarnings("deprecation")

public void actionPerformed(ActionEvent arg0) {

String str = chatmsg.getText().trim();

if(!"".equals(str))

{sendmsg((new Date()).toLocaleString()+" -- 系統(tǒng)消息: "+str);chatmsg.setText("");}

else

JOptionPane.showMessageDialog(null, "消息不能為空","錯(cuò)誤",JOptionPane.OK_OPTION);

chatmsg.setText("");/* -- 發(fā)送信息后,將輸入欄中的信息清空 -- */

}

});

send = new JButton("發(fā)送");

send.addActionListener(new ActionListener(){

@SuppressWarnings("deprecation")

public void actionPerformed(ActionEvent arg0) {

String str = chatmsg.getText().trim();

if(!"".equals(str))

{sendmsg((new Date()).toLocaleString()+" -- 系統(tǒng)消息: "+str);chatmsg.setText("");}

else

JOptionPane.showMessageDialog(null, "消息不能為空","錯(cuò)誤",JOptionPane.OK_OPTION);

chatmsg.setText("");/* -- 發(fā)送信息后,將輸入欄中的信息清空 -- */

}

});

//建立容器

addcomponettocontainer();

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we)

{

sendmsg("SYSTEM_CLOSED");/* -- 向客戶端發(fā)送服務(wù)器關(guān)閉信息 -- */

destory();

}

});

start(); /* -- 啟動連接服務(wù) -- */

}

public void addcomponettocontainer()

{

//Container建立容器

Container c = this.getContentPane();

c.setLayout(null);

currnum.setBounds(20,15,130,20);

totalnum.setBounds(155,15,125,20);

js.setBounds(10,50,280,500);

chatmsg.setBounds(10,560,180,30);

send.setBounds(220,560,70,30);

copyright.setBounds(10,600,280,20);

c.add(currnum);

c.add(totalnum);

c.add(js);

c.add(chatmsg);

c.add(send);

c.add(copyright);

this.setVisible(true);

this.setResizable(false);

}

/**

* start()方法監(jiān)聽客戶的連接

* 并且保存客戶端的相關(guān)信息EG:用戶昵稱、用戶所使用的Socket

* 用戶連接到服務(wù)器成功之后,將其保存到用戶列表中,并為該用戶啟動一個(gè)線程用于通信 */

@SuppressWarnings("deprecation")

public void start()

{

boolean isStarted = false;/* -- 用于標(biāo)記服務(wù)器是否已經(jīng)正常啟動 -- */

try {

this.ss = new ServerSocket(port);

isStarted = true;

this.allmsg.append((new Date()).toLocaleString()+" 服務(wù)器啟動 @ 端口: "+port+"\n");

while(isStarted)

{

Socket client = this.ss.accept(); /* -- 監(jiān)聽客戶端的連接 -- */

DataInputStream in = new DataInputStream(client.getInputStream());

String name = in.readUTF();

user u = new user();

u.name = name;

u.socket = client;

lists.add(u); //將該用戶加到列表中去

num1++;

num2++;

currnum.setText(" 當(dāng)前在線人數(shù): "+num1);

totalnum.setText(" 上線總?cè)藬?shù): "+num2);

this.allmsg.append((new Date()).toLocaleString()+" : "+u.name+" 登錄 \n");

new Thread(new ClientThread(u)).start();/* -- 為該用戶啟動一個(gè)通信線程 -- */

}

} catch (IOException e) {

System.out.println("服務(wù)器已經(jīng)啟動......");

System.exit(0);

}

}

/**

* 通信線程主要功能包括:

* 1.監(jiān)聽客戶端輸入的信息

* 2.將接收到的信息轉(zhuǎn)發(fā)給其他用戶 */

class ClientThread implements Runnable

{

user user = null;

boolean isConnected = true;

DataInputStream dis = null;

DataOutputStream dos = null;

public ClientThread(user u)

{

this.user = u;

try {

this.dis = new DataInputStream(this.user.socket.getInputStream());

this.dos = new DataOutputStream(this.user.socket.getOutputStream());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void run()

{

readmsg();

}

/* -- 讀取客戶的聊天信息 -- */

@SuppressWarnings("deprecation")

public void readmsg()

{

while(isConnected)

{

try {

String msg = dis.readUTF();

if("quitlogout".equals(msg))//當(dāng)用戶關(guān)閉客戶端窗口時(shí),發(fā)送quit字符串 表示用戶已經(jīng)退出

{

num1--;

try{

this.dis.close();

this.dos.close();

this.user.socket.close();

this.isConnected = false;

}catch(IOException ioe)

{

ioe.printStackTrace();

}finally{

this.isConnected = false;

if(dis!=null) this.dis.close();

if(dos!=null) this.dos.close();

if(this.user.socket!=null) this.user.socket.close();

}

lists.remove(this.user);//從列表中刪除該用戶

currnum.setText(" 當(dāng)前在線人數(shù): "+num1);

allmsg.append((new Date()).toLocaleString()+" : "+this.user.name+" 退出\n");

}

else

sendmsg(msg);

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

/* -- 將信息進(jìn)行轉(zhuǎn)發(fā) -- */

public void sendmsg(String msg)

{

user us = new user();

DataOutputStream os = null;

if(lists.size()0)

{

for(int i=0;ilists.size();i++)

{

us = lists.get(i);

try {

os = new DataOutputStream(us.socket.getOutputStream());

os.writeUTF(msg);

} catch (IOException e) {

e.printStackTrace();

}

}

}

else

JOptionPane.showMessageDialog(null, "當(dāng)前無用戶在線。發(fā)送消息失敗","失敗",JOptionPane.OK_OPTION);

}

public void destory()

{

try {

this.ss.close();

} catch (IOException e) {

e.printStackTrace();

}

this.dispose();

}

public static void main(String[] args)

{

new ServerFrame();

}

}

=================================================

package server;

import java.net.*;

public class user {

String name;

Socket socket;

}

java中點(diǎn)擊一個(gè)按鈕彈出兩個(gè)輸入文本框的源代碼

寫了一個(gè)很簡單的案例,可以參考和修改

import?java.awt.BorderLayout;

import?java.awt.GridLayout;

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?javax.swing.JButton;

import?javax.swing.JDialog;

import?javax.swing.JFrame;

import?javax.swing.JLabel;

import?javax.swing.JTextField;

public?class?FromeDemo?extends?JFrame{

JButton?jbutton;

public?FromeDemo()?{

jbutton?=?new?JButton("彈出2個(gè)文本框");

jbutton.addActionListener(new?ActionListener()?{

@Override

public?void?actionPerformed(ActionEvent?e)?{

JDialog?jd?=?new?JDialog();

jd.setBounds(320,?180,?260,?100);

jd.setTitle("彈出文本框");

jd.getContentPane().setLayout(new?GridLayout(2,?2));

jd.add(new?JLabel("文本框一"));

jd.add(new?JTextField(80));

jd.add(new?JLabel("文本框二"));

jd.add(new?JTextField(80));

jd.setModal(true);//確保彈出的窗口在其他窗口前面

jd.setVisible(true);

}

});

add(jbutton,BorderLayout.SOUTH);

setBounds(300,?100,?320,?320);

setTitle("測試");

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

public?static?void?main(String?args[])?{

new?FromeDemo();

}

}


當(dāng)前文章:java彈窗源代碼 java實(shí)現(xiàn)彈窗
分享地址:http://weahome.cn/article/dopgphj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部