Ambil IP
import java.net.*;
public class AmbilIP {
public static void main(String[] args) {
try {
InetAddress ip =
InetAddress.getByName("localhost");
System.out.println(ip.getHostAddress());
System.out.println(ip.getHostName());
}
catch(UnknownHostException e) {
System.out.println(e);
}
}
}
public class AmbilIP {
public static void main(String[] args) {
try {
InetAddress ip =
InetAddress.getByName("localhost");
System.out.println(ip.getHostAddress());
System.out.println(ip.getHostName());
}
catch(UnknownHostException e) {
System.out.println(e);
}
}
}
Menu Browser
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.Scanner;
public class Browser{
public static void main(String[] args){
try {
BufferedReader input = new BufferedReader(new
InputStreamReader(System.in));
int menu=0;
int pil;
Scanner masuk = new Scanner(System.in);
while(menu==0){
System.out.println("*******************************");
System.out.println("* M.S Hadi Prasetyo *");
System.out.println("*******************************");
System.out.println("1. Membuka URL web *");
System.out.println("2. Pencarian Google *");
System.out.println("3. Pencarian Gambar di Google *");
System.out.println("4. Membuka Google Translate *");
System.out.println("5. Batal *");
System.out.print("");
System.out.print("Ketikkan Pilihan Anda:");
pil = masuk.nextInt();
if(pil < 1 || pil > 5){
System.out.print("");
System.out.println("Input Salah Woyy!");
} else if (pil==5){
System.exit(0);}
switch (pil) {
case 1:
String URL = null;
System.out.print("Ketikkan URL yang ingin Anda cari: ");
URL = input.readLine();
java.awt.Desktop.getDesktop().browse(java.net.URI.create("http://"+URL));
break;
case 2:
String src2 = null;
System.out.print("Ketikkan Kata Pencarian : ");
src2 = input.readLine();
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://www.google.co.id/#sclient=psy-ab&q="+ src2));
break;
case 3:
String gmbr3 = null;
System.out.print("Ketikkan Nama Gambar : ");
gmbr3 = input.readLine();
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://www.google.co.id/search?site=imghp&tbm=isch&source=hp&biw=1360&bih=642&q="+ gmbr3));
break;
case 4:
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://translate.google.co.id/?hl=id&tab=wT#"));
break;
}
}
}
catch (Exception ex) {System.out.println("Error");}
}
}
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.Scanner;
public class Browser{
public static void main(String[] args){
try {
BufferedReader input = new BufferedReader(new
InputStreamReader(System.in));
int menu=0;
int pil;
Scanner masuk = new Scanner(System.in);
while(menu==0){
System.out.println("*******************************");
System.out.println("* M.S Hadi Prasetyo *");
System.out.println("*******************************");
System.out.println("1. Membuka URL web *");
System.out.println("2. Pencarian Google *");
System.out.println("3. Pencarian Gambar di Google *");
System.out.println("4. Membuka Google Translate *");
System.out.println("5. Batal *");
System.out.print("");
System.out.print("Ketikkan Pilihan Anda:");
pil = masuk.nextInt();
if(pil < 1 || pil > 5){
System.out.print("");
System.out.println("Input Salah Woyy!");
} else if (pil==5){
System.exit(0);}
switch (pil) {
case 1:
String URL = null;
System.out.print("Ketikkan URL yang ingin Anda cari: ");
URL = input.readLine();
java.awt.Desktop.getDesktop().browse(java.net.URI.create("http://"+URL));
break;
case 2:
String src2 = null;
System.out.print("Ketikkan Kata Pencarian : ");
src2 = input.readLine();
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://www.google.co.id/#sclient=psy-ab&q="+ src2));
break;
case 3:
String gmbr3 = null;
System.out.print("Ketikkan Nama Gambar : ");
gmbr3 = input.readLine();
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://www.google.co.id/search?site=imghp&tbm=isch&source=hp&biw=1360&bih=642&q="+ gmbr3));
break;
case 4:
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://translate.google.co.id/?hl=id&tab=wT#"));
break;
}
}
}
catch (Exception ex) {System.out.println("Error");}
}
}
Chat Client dan Chat Server
- Chat Client
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ChatClient extends JFrame{
JLabel lblPesan = new JLabel ("Kirim Pesan:");
TextArea taPesan = new TextArea(4,50);
JLabel lblBlasan = new JLabel ("Dari Teman:");
TextArea taBlasan = new TextArea(4,50);
JButton btnSend = new JButton("Send");
JButton btnOpen = new JButton("Open Connection");
JButton btnClose = new JButton("Close Connection");
Socket con = null;
ObjectOutputStream toServer;
ObjectInputStream fromServer;
String Blasan = null;
String inputIPServer;
public void openConnection(){
try{
inputIPServer=JOptionPane.showInputDialog("Inputkan IP Server");
con = new Socket(InetAddress.getByName(inputIPServer),2000);
toServer = new ObjectOutputStream(con.getOutputStream());
}
catch(EOFException ex){
;
}
catch(IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void sendData(){
try{
toServer.writeObject(taPesan.getText());
taPesan.setText("");
taPesan.requestFocus();
}
catch(EOFException ex){
;
}
catch(IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void getData(){
try{
fromServer = new ObjectInputStream(con.getInputStream());
Blasan = (String) fromServer.readObject();
taBlasan.setText(Blasan);
}
catch(ClassNotFoundException ex){
System.out.println("Error");
}
catch(EOFException ex){
;
}
catch(IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void closeConnection(){
try{
toServer.writeObject("bye");
con.close();
con = null;
}
catch (EOFException ex){
;
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public ChatClient(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(lblPesan);
c.add(taPesan);
c.add(lblBlasan);
c.add(taBlasan);
c.add(btnOpen);
c.add(btnSend);
c.add(btnClose);
btnOpen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
openConnection();
}
});
btnSend.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
sendData();
getData();
}
});
btnClose.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
closeConnection();
}
});
}
public static void main(String[]args)
{
ChatClient klien = new ChatClient();
klien.setTitle("Chatting - Client");
klien.setLocation(300,300);
klien.setSize(500,200);
klien.setVisible(true);
klien.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
}
}
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ChatClient extends JFrame{
JLabel lblPesan = new JLabel ("Kirim Pesan:");
TextArea taPesan = new TextArea(4,50);
JLabel lblBlasan = new JLabel ("Dari Teman:");
TextArea taBlasan = new TextArea(4,50);
JButton btnSend = new JButton("Send");
JButton btnOpen = new JButton("Open Connection");
JButton btnClose = new JButton("Close Connection");
Socket con = null;
ObjectOutputStream toServer;
ObjectInputStream fromServer;
String Blasan = null;
String inputIPServer;
public void openConnection(){
try{
inputIPServer=JOptionPane.showInputDialog("Inputkan IP Server");
con = new Socket(InetAddress.getByName(inputIPServer),2000);
toServer = new ObjectOutputStream(con.getOutputStream());
}
catch(EOFException ex){
;
}
catch(IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void sendData(){
try{
toServer.writeObject(taPesan.getText());
taPesan.setText("");
taPesan.requestFocus();
}
catch(EOFException ex){
;
}
catch(IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void getData(){
try{
fromServer = new ObjectInputStream(con.getInputStream());
Blasan = (String) fromServer.readObject();
taBlasan.setText(Blasan);
}
catch(ClassNotFoundException ex){
System.out.println("Error");
}
catch(EOFException ex){
;
}
catch(IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void closeConnection(){
try{
toServer.writeObject("bye");
con.close();
con = null;
}
catch (EOFException ex){
;
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public ChatClient(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(lblPesan);
c.add(taPesan);
c.add(lblBlasan);
c.add(taBlasan);
c.add(btnOpen);
c.add(btnSend);
c.add(btnClose);
btnOpen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
openConnection();
}
});
btnSend.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
sendData();
getData();
}
});
btnClose.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
closeConnection();
}
});
}
public static void main(String[]args)
{
ChatClient klien = new ChatClient();
klien.setTitle("Chatting - Client");
klien.setLocation(300,300);
klien.setSize(500,200);
klien.setVisible(true);
klien.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
}
}
- Chat Server
import java.net.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ChatServer extends JFrame{
JLabel lblPesan = new JLabel ("Kirim Pesan:");
TextArea taPesan = new TextArea(4,50);
JLabel lblBlasan = new JLabel ("Dari Teman:");
TextArea taBlasan = new TextArea(4,50);
JButton btnSend = new JButton("Send");
JButton btnClose = new JButton("Close Connection");
ServerSocket sktServer;
Socket conClient;
ObjectInputStream fromClient;
ObjectOutputStream toClient;
String s = null;
Container c;
public void sendData(){
try{
toClient = new ObjectOutputStream(conClient.getOutputStream());
toClient.writeObject(taPesan.getText());
System.out.println(taPesan.getText());
taPesan.requestFocus();
}
catch (EOFException ex){
;
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Koneksi Belum Tersambung ! ", "Pesan", JOptionPane.ERROR_MESSAGE);
}
catch (SocketException se){
JOptionPane.showMessageDialog(null, "Koneksi Putus !", "Pesan",JOptionPane.ERROR_MESSAGE);
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void closeConnection(){
try{
conClient.close();
conClient = null;
System.exit(0);
}
catch (EOFException ex){
;
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public ChatServer()throws IOException{
c = getContentPane();
c.setLayout(new FlowLayout());
c.add(lblPesan);
c.add(taPesan);
c.add(lblBlasan);
c.add(taBlasan);
c.add(btnSend);
c.add(btnClose);
btnSend.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
sendData();
}
});
btnClose.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
closeConnection();
}
});
}
public void terimaKoneksi() throws IOException{
sktServer = new ServerSocket(2000);
conClient = sktServer.accept();
JOptionPane.showMessageDialog(null, "Tersambung dengan Client" + conClient.getInetAddress().toString(), "Pesan", JOptionPane.INFORMATION_MESSAGE);
sktServer.close();
try{
fromClient = new ObjectInputStream(conClient.getInputStream());
do{
try{
s=(String) fromClient.readObject();
taBlasan.setText(s);
}
catch(ClassNotFoundException ex){
System.out.println("Error");
}
}
while(!s.equals("bye"));
}
catch (EOFException ex){
;
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
finally{
System.out.println("Closed");
conClient.close();
}
}
public static void main(String[] args) throws IOException{
ChatServer svr = new ChatServer();
svr.setTitle("Chatting - Server");
svr.setLocation(300,300);
svr.setSize(500,250);
svr.setVisible(true);
svr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});svr.terimaKoneksi();
}
}
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ChatServer extends JFrame{
JLabel lblPesan = new JLabel ("Kirim Pesan:");
TextArea taPesan = new TextArea(4,50);
JLabel lblBlasan = new JLabel ("Dari Teman:");
TextArea taBlasan = new TextArea(4,50);
JButton btnSend = new JButton("Send");
JButton btnClose = new JButton("Close Connection");
ServerSocket sktServer;
Socket conClient;
ObjectInputStream fromClient;
ObjectOutputStream toClient;
String s = null;
Container c;
public void sendData(){
try{
toClient = new ObjectOutputStream(conClient.getOutputStream());
toClient.writeObject(taPesan.getText());
System.out.println(taPesan.getText());
taPesan.requestFocus();
}
catch (EOFException ex){
;
}
catch(NullPointerException npe){
JOptionPane.showMessageDialog(null, "Koneksi Belum Tersambung ! ", "Pesan", JOptionPane.ERROR_MESSAGE);
}
catch (SocketException se){
JOptionPane.showMessageDialog(null, "Koneksi Putus !", "Pesan",JOptionPane.ERROR_MESSAGE);
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public void closeConnection(){
try{
conClient.close();
conClient = null;
System.exit(0);
}
catch (EOFException ex){
;
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
}
public ChatServer()throws IOException{
c = getContentPane();
c.setLayout(new FlowLayout());
c.add(lblPesan);
c.add(taPesan);
c.add(lblBlasan);
c.add(taBlasan);
c.add(btnSend);
c.add(btnClose);
btnSend.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
sendData();
}
});
btnClose.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
closeConnection();
}
});
}
public void terimaKoneksi() throws IOException{
sktServer = new ServerSocket(2000);
conClient = sktServer.accept();
JOptionPane.showMessageDialog(null, "Tersambung dengan Client" + conClient.getInetAddress().toString(), "Pesan", JOptionPane.INFORMATION_MESSAGE);
sktServer.close();
try{
fromClient = new ObjectInputStream(conClient.getInputStream());
do{
try{
s=(String) fromClient.readObject();
taBlasan.setText(s);
}
catch(ClassNotFoundException ex){
System.out.println("Error");
}
}
while(!s.equals("bye"));
}
catch (EOFException ex){
;
}
catch (IOException io){
System.out.println("IO Exception");
io.printStackTrace();
}
finally{
System.out.println("Closed");
conClient.close();
}
}
public static void main(String[] args) throws IOException{
ChatServer svr = new ChatServer();
svr.setTitle("Chatting - Server");
svr.setLocation(300,300);
svr.setSize(500,250);
svr.setVisible(true);
svr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});svr.terimaKoneksi();
}
}
DisplayNet
import java.io.*;
import java.net.*;
import java.util.*;
public class DisplayNet {
public static void main(String argv[])
throws Exception
{
//panggil method getNetworkInterface0
//untuk mendapatkan semua antarmuka jaringan
//yang digunakan di computer localEnumeration e = NetworkInterface.getNetworkInterfaces();
//perulangan untuk mengambil tiap antarmuka jaringan
//hasil da\ri method getNetworkInterface0
while(e.hasMoreElements()) {
NetworkInterface netface = (NetworkInterface)e.nextElement();
System.out.println("Net Interface:"+netface.getName());
//ambil semua informasi alamat IP dari
//tiap antarmuka jaringan
Enumeration e2 = netface.getInetAddresses();
//lakukan perulangan untuk tiap alamat IP dari
//yang didapat pada tiap antarmuka jaringannya
while(e2.hasMoreElements()) {
InetAddress ip = (InetAddress)e2.nextElement();
System.out.println("IP Address:"+ip.toString());
}
}
}
}
import java.net.*;
import java.util.*;
public class DisplayNet {
public static void main(String argv[])
throws Exception
{
//panggil method getNetworkInterface0
//untuk mendapatkan semua antarmuka jaringan
//yang digunakan di computer localEnumeration e = NetworkInterface.getNetworkInterfaces();
//perulangan untuk mengambil tiap antarmuka jaringan
//hasil da\ri method getNetworkInterface0
while(e.hasMoreElements()) {
NetworkInterface netface = (NetworkInterface)e.nextElement();
System.out.println("Net Interface:"+netface.getName());
//ambil semua informasi alamat IP dari
//tiap antarmuka jaringan
Enumeration e2 = netface.getInetAddresses();
//lakukan perulangan untuk tiap alamat IP dari
//yang didapat pada tiap antarmuka jaringannya
while(e2.hasMoreElements()) {
InetAddress ip = (InetAddress)e2.nextElement();
System.out.println("IP Address:"+ip.toString());
}
}
}
}
Hello World
public class hello {
public static void main (String args [] ){
System.out.println("Hello World");
}
}
public static void main (String args [] ){
System.out.println("Hello World");
}
}
Info Client dan Info Server
- Info Client
import java.net.*;
import java.io.*;
import java.util.*;
public class InfoClient {
private final int INFO_PORT = 50000;
private final String TargetHost="localhost";
private final String QUIT ="QUIT";
public InfoClient() {
try {
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket(TargetHost, INFO_PORT);
DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader( new InputStreamReader( clientSocket.getInputStream()));
System.out.println(inFromServer.readLine());
System.out.println(inFromServer.readLine());
System.out.println(inFromServer.readLine());
System.out.println("");
boolean isQuit = false;
while (!isQuit) {
System.out.print("Perintah Anda :");
String cmd = inFromUser.readLine();
cmd = cmd.toUpperCase();
if (cmd.equals(QUIT)) {
isQuit = true;
}
outToServer.writeBytes(cmd + "\n");
String result = inFromServer.readLine();
System.out.println("Dari Server :" + result);
}
outToServer.close();
inFromServer.close();
clientSocket.close();
}
catch (IOException ioe) {
System.out.println("Error: " + ioe);
}
catch (Exception e) {
System.out.println("Error:" + e);
}
}
public static void main(String[]args) {
new InfoClient();
}
}
import java.io.*;
import java.util.*;
public class InfoClient {
private final int INFO_PORT = 50000;
private final String TargetHost="localhost";
private final String QUIT ="QUIT";
public InfoClient() {
try {
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket(TargetHost, INFO_PORT);
DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader( new InputStreamReader( clientSocket.getInputStream()));
System.out.println(inFromServer.readLine());
System.out.println(inFromServer.readLine());
System.out.println(inFromServer.readLine());
System.out.println("");
boolean isQuit = false;
while (!isQuit) {
System.out.print("Perintah Anda :");
String cmd = inFromUser.readLine();
cmd = cmd.toUpperCase();
if (cmd.equals(QUIT)) {
isQuit = true;
}
outToServer.writeBytes(cmd + "\n");
String result = inFromServer.readLine();
System.out.println("Dari Server :" + result);
}
outToServer.close();
inFromServer.close();
clientSocket.close();
}
catch (IOException ioe) {
System.out.println("Error: " + ioe);
}
catch (Exception e) {
System.out.println("Error:" + e);
}
}
public static void main(String[]args) {
new InfoClient();
}
}
- Info Server
import java.net.*;
import java.io.*;
import java.util.*;
public class InfoServer {
private final int INFO_PORT= 50000;
private String datafromClient;
public InfoServer (){
BufferedReader inFromClient;
DataOutputStream outToClient;
Socket serverSocket;
try{
ServerSocket infoServer=
new ServerSocket(INFO_PORT);
System.out.println("Menunggu Cinta Darimu~ . . . . ");
while(true){
serverSocket=infoServer.accept();
System.out.println("Ada clien"+"yang terkoneksi !!");
inFromClient=
new BufferedReader(
new InputStreamReader(
serverSocket.getInputStream()));
outToClient=
new DataOutputStream(
serverSocket.getOutputStream());
outToClient.writeBytes("InfoServer versi0.1\n"+"hanya untuk testing..\n"+"Silahkan berikan TIME|NET|QUIT\n");
boolean isQuit = false;
while(!isQuit){
datafromClient = inFromClient.readLine();
if(datafromClient.startsWith("TIME")){
outToClient.writeBytes(new
Date().toString()+"\n");
}else if (datafromClient.startsWith("NET")){
outToClient.writeBytes(
InetAddress.getByName("localhost").toString()+"\n");
} else if (datafromClient.startsWith("QUIT"))
{
isQuit = true;
}
}
outToClient.close();
inFromClient.close();
serverSocket.close();
System.out.println("Teknik Komputer 4CF");
}
}
catch(IOException ioe){
System.out.println("error:"+ioe);
}
catch(Exception e){
System.out.println("error:"+e);
}
}
public static void main(String[]args){
new InfoServer();
}
}
import java.io.*;
import java.util.*;
public class InfoServer {
private final int INFO_PORT= 50000;
private String datafromClient;
public InfoServer (){
BufferedReader inFromClient;
DataOutputStream outToClient;
Socket serverSocket;
try{
ServerSocket infoServer=
new ServerSocket(INFO_PORT);
System.out.println("Menunggu Cinta Darimu~ . . . . ");
while(true){
serverSocket=infoServer.accept();
System.out.println("Ada clien"+"yang terkoneksi !!");
inFromClient=
new BufferedReader(
new InputStreamReader(
serverSocket.getInputStream()));
outToClient=
new DataOutputStream(
serverSocket.getOutputStream());
outToClient.writeBytes("InfoServer versi0.1\n"+"hanya untuk testing..\n"+"Silahkan berikan TIME|NET|QUIT\n");
boolean isQuit = false;
while(!isQuit){
datafromClient = inFromClient.readLine();
if(datafromClient.startsWith("TIME")){
outToClient.writeBytes(new
Date().toString()+"\n");
}else if (datafromClient.startsWith("NET")){
outToClient.writeBytes(
InetAddress.getByName("localhost").toString()+"\n");
} else if (datafromClient.startsWith("QUIT"))
{
isQuit = true;
}
}
outToClient.close();
inFromClient.close();
serverSocket.close();
System.out.println("Teknik Komputer 4CF");
}
}
catch(IOException ioe){
System.out.println("error:"+ioe);
}
catch(Exception e){
System.out.println("error:"+e);
}
}
public static void main(String[]args){
new InfoServer();
}
}
Perintah
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.Scanner;
public class quis{
public static void main(String[] args){
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int menu=0;
int pil;
Scanner masuk = new Scanner(System.in);
while(menu==0){
System.out.println("===================");
System.out.println("========MENU=======");
System.out.println("===================");
System.out.println("1. Perintah Shutdown");
System.out.println("2. Perintah www.Facebook.com");
System.out.println("3. Exit");
System.out.println("");
System.out.println("Masukkan Angka Pilihan Anda");
System.out.print("Pilih :");
pil = masuk.nextInt();
if(pil<1 || pil<3){
System.out.print("");
System.out.println("Input Benar!!");
} else if(pil==3){
System.exit(0);}
switch (pil) {
case 1:
Runtime rt = Runtime.getRuntime();
Process proc;
try {
proc = rt.exec("CMD /C START Shutdown -s");
}
catch(Exception e) {
System.out.println("Cannot execute application");
}
break;
case 2:
String src2 = null;
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://www.facebook.com"));
break;
case 3:
System.exit(0);
}
}
}
catch (Exception ex) {System.out.println("Error");}
}
}
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.Scanner;
public class quis{
public static void main(String[] args){
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int menu=0;
int pil;
Scanner masuk = new Scanner(System.in);
while(menu==0){
System.out.println("===================");
System.out.println("========MENU=======");
System.out.println("===================");
System.out.println("1. Perintah Shutdown");
System.out.println("2. Perintah www.Facebook.com");
System.out.println("3. Exit");
System.out.println("");
System.out.println("Masukkan Angka Pilihan Anda");
System.out.print("Pilih :");
pil = masuk.nextInt();
if(pil<1 || pil<3){
System.out.print("");
System.out.println("Input Benar!!");
} else if(pil==3){
System.exit(0);}
switch (pil) {
case 1:
Runtime rt = Runtime.getRuntime();
Process proc;
try {
proc = rt.exec("CMD /C START Shutdown -s");
}
catch(Exception e) {
System.out.println("Cannot execute application");
}
break;
case 2:
String src2 = null;
java.awt.Desktop.getDesktop().browse(java.net.URI.create("https://www.facebook.com"));
break;
case 3:
System.exit(0);
}
}
}
catch (Exception ex) {System.out.println("Error");}
}
}
Multichat Client dan Multichat Server
- Multichat Server
import java.io.*;
import java.net.*;
import java.util.*;
public class ChatServer {
private static int uniqueld;
private ArrayList<ChatServer.ClientThread> clients;
private int port;
private boolean keepGoing;
public ChatServer() {
this.port=9999;
clients = new ArrayList<>();
}
public void start() {
keepGoing = true;
try {
ServerSocket serverSocket = new ServerSocket(port);
while (keepGoing) {
System.out.println("ChatServer waiting for Clients on port "+port+".");
Socket socket = serverSocket.accept();
if(!keepGoing) {
break;
}
ChatServer.ClientThread t = new ChatServer.ClientThread(socket);
clients.add(t);
t.start();
send("login~"+t.username+"~"+t.username+"sedang login..~Server~\n");
}
try {
serverSocket.close();
for(int i = 0; i<clients.size(); ++i) {
ChatServer.ClientThread tc = clients.get(i);
try {
tc.sInput.close();
tc.sOutput.close();
tc.socket.close();
} catch (IOException ioE) {
}
}
} catch (Exception e) {
System.out.println("Exception closing the server and clients: "+e);
}
} catch (IOException e) {
String msg = "Exception on new ServerSocket: "+e+"\n";
System.out.println(msg);
}
}
private synchronized void send(String message) {
for (int i = clients.size(); --i>=0;) {
ChatServer.ClientThread ct = clients.get(i);
if(!ct.writeMsg(message)) {
clients.remove(i);
System.out.println("Disconnected Client"+ct.username+"removed from list.");
}
}
}
private String getClients() {
String s = "";
for (ClientThread clientThread : clients) {
s+=clientThread.username+":";
}
s+="--";
System.out.println(s);
return s;
}
private synchronized void remove(int id) {
for (int i = 0; i<clients.size(); ++i) {
ChatServer.ClientThread ct = clients.get(i);
if(ct.id == id) {
clients.remove(i);
return;
}
}
}
public static void main(String[] args) {
ChatServer server = new ChatServer();
server.start();
}
private class ClientThread extends Thread {
private Socket socket;
private ObjectInputStream sInput;
private ObjectOutputStream sOutput;
private int id;
private String username;
public ClientThread(Socket socket) {
id = ++uniqueld;
this.socket = socket;
System.out.println("Menciptakan Object Input/Output Streams");
try {
sOutput = new ObjectOutputStream(socket.getOutputStream());
sInput = new ObjectInputStream(socket.getInputStream());
String message = (String) sInput.readObject();
username = message.split("~")[1];
System.out.println(username +"masuk");
} catch (IOException e) {
System.out.println("Exception creating new Input/output Streams: "+e);
} catch (ClassNotFoundException e) {
}
}
@Override
public void run() {
boolean keepGoing = true;
while (keepGoing) {
String message;
try {
message = sInput.readObject().toString();
} catch (IOException e) {
System.out.println(username + "Exception reading Streams: "+e);
break;
} catch (ClassNotFoundException e2) {
break;
}
String type = message.split("~")[0];
String pengirim = message.split("~")[1];
String text = message.split("~")[2];
String kepada = message.split("~")[3];
String response;
switch (type) {
case "postText":
response = "recieveText~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "postPrivateText":
response = "receivePrivateText~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "login":
response = "login~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "logout":
response = "logout~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "list":
response = "list-server~"+getClients()+"~~~~~\n";
send(response);
break;
}
}
remove(id);
close();
}
private void close() {
try {
if (sOutput != null) {
sOutput.close();
}
} catch (Exception e) {
}
try {
if (sInput != null) {
sInput.close();
}
} catch (Exception e) {
}
try {
if(socket != null) {
socket.close();
}
} catch (Exception e) {
}
}
private boolean writeMsg(String msg) {
if(!socket.isConnected()) {
close();
return false;
}
try {
sOutput.writeObject(msg);
} catch (IOException e) {
System.out.println("Error sending message to "+username);
System.out.println(e.toString());
}
return true;
}
}
}
import java.net.*;
import java.util.*;
public class ChatServer {
private static int uniqueld;
private ArrayList<ChatServer.ClientThread> clients;
private int port;
private boolean keepGoing;
public ChatServer() {
this.port=9999;
clients = new ArrayList<>();
}
public void start() {
keepGoing = true;
try {
ServerSocket serverSocket = new ServerSocket(port);
while (keepGoing) {
System.out.println("ChatServer waiting for Clients on port "+port+".");
Socket socket = serverSocket.accept();
if(!keepGoing) {
break;
}
ChatServer.ClientThread t = new ChatServer.ClientThread(socket);
clients.add(t);
t.start();
send("login~"+t.username+"~"+t.username+"sedang login..~Server~\n");
}
try {
serverSocket.close();
for(int i = 0; i<clients.size(); ++i) {
ChatServer.ClientThread tc = clients.get(i);
try {
tc.sInput.close();
tc.sOutput.close();
tc.socket.close();
} catch (IOException ioE) {
}
}
} catch (Exception e) {
System.out.println("Exception closing the server and clients: "+e);
}
} catch (IOException e) {
String msg = "Exception on new ServerSocket: "+e+"\n";
System.out.println(msg);
}
}
private synchronized void send(String message) {
for (int i = clients.size(); --i>=0;) {
ChatServer.ClientThread ct = clients.get(i);
if(!ct.writeMsg(message)) {
clients.remove(i);
System.out.println("Disconnected Client"+ct.username+"removed from list.");
}
}
}
private String getClients() {
String s = "";
for (ClientThread clientThread : clients) {
s+=clientThread.username+":";
}
s+="--";
System.out.println(s);
return s;
}
private synchronized void remove(int id) {
for (int i = 0; i<clients.size(); ++i) {
ChatServer.ClientThread ct = clients.get(i);
if(ct.id == id) {
clients.remove(i);
return;
}
}
}
public static void main(String[] args) {
ChatServer server = new ChatServer();
server.start();
}
private class ClientThread extends Thread {
private Socket socket;
private ObjectInputStream sInput;
private ObjectOutputStream sOutput;
private int id;
private String username;
public ClientThread(Socket socket) {
id = ++uniqueld;
this.socket = socket;
System.out.println("Menciptakan Object Input/Output Streams");
try {
sOutput = new ObjectOutputStream(socket.getOutputStream());
sInput = new ObjectInputStream(socket.getInputStream());
String message = (String) sInput.readObject();
username = message.split("~")[1];
System.out.println(username +"masuk");
} catch (IOException e) {
System.out.println("Exception creating new Input/output Streams: "+e);
} catch (ClassNotFoundException e) {
}
}
@Override
public void run() {
boolean keepGoing = true;
while (keepGoing) {
String message;
try {
message = sInput.readObject().toString();
} catch (IOException e) {
System.out.println(username + "Exception reading Streams: "+e);
break;
} catch (ClassNotFoundException e2) {
break;
}
String type = message.split("~")[0];
String pengirim = message.split("~")[1];
String text = message.split("~")[2];
String kepada = message.split("~")[3];
String response;
switch (type) {
case "postText":
response = "recieveText~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "postPrivateText":
response = "receivePrivateText~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "login":
response = "login~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "logout":
response = "logout~"+pengirim+"~"+text+"~"+kepada+"~\n";
send(response);
break;
case "list":
response = "list-server~"+getClients()+"~~~~~\n";
send(response);
break;
}
}
remove(id);
close();
}
private void close() {
try {
if (sOutput != null) {
sOutput.close();
}
} catch (Exception e) {
}
try {
if (sInput != null) {
sInput.close();
}
} catch (Exception e) {
}
try {
if(socket != null) {
socket.close();
}
} catch (Exception e) {
}
}
private boolean writeMsg(String msg) {
if(!socket.isConnected()) {
close();
return false;
}
try {
sOutput.writeObject(msg);
} catch (IOException e) {
System.out.println("Error sending message to "+username);
System.out.println(e.toString());
}
return true;
}
}
}
- Multichat Client
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.table.DefaultTableModel;
public class ChatClient extends javax.swing.JFrame {
/**
* Creates new form ChatClient
*/
private ObjectInputStream input;
private ObjectOutputStream output;
private Socket socket;
private String server, username;
private int port;
private List<String> clients;
public ChatClient() {
clients = new ArrayList();
initComponents();
}
public boolean start() {
try {
socket = new Socket(server, port);
} catch (Exception ec) {
System.out.println("Error connectiong to server:" + ec);
return false;
}
String msg = "Connection accepted " + socket.getInetAddress() + ":" + socket.getPort();
System.out.println(msg);
try {
input = new ObjectInputStream(socket.getInputStream());
output = new ObjectOutputStream(socket.getOutputStream());
} catch (IOException eIO) {
System.out.println("Exception creating new Input/output Streams: " + eIO);
return false;
}
new ChatClient.ListenFromServer().start();
try {
output.writeObject("login~" + username + "~" + username + " sedang login…~server~\n");
output.writeObject("list~" + username + "~" + username + " sedang login…~server~\n");
} catch (IOException eIO) {
System.out.println("Exception doing login : " + eIO);
disconnect();
return false;
}
return true;
}
private void disconnect() {
try {
// TODO add your handling code here:
output.writeObject("logout~" + username + "~"+ username + " sudah logout…~Server~\n");
} catch (IOException ex) {
//Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
try {
if (input != null) {
input.close();
}
} catch (Exception e) {
}
try {
if (output != null) {
output.close();
}
} catch (Exception e) {
}
try {
if (socket != null) {
socket.close();
}
} catch (Exception e) {
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
viewTextArea = new javax.swing.JTextArea();
jScrollPane2 = new javax.swing.JScrollPane();
clientTable = new javax.swing.JTable();
postTextField = new javax.swing.JTextField();
kirimButton = new javax.swing.JButton();
lbljpg = new javax.swing.JLabel(new ImageIcon("Documents:fb.jpg"));
jLabel2 = new javax.swing.JLabel();
serverTextField = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
portTextField = new javax.swing.JTextField();
masukButton = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
usernameTextField = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
viewTextArea.setEditable(false);
viewTextArea.setColumns(20);
viewTextArea.setLineWrap(true);
viewTextArea.setRows(5);
viewTextArea.setFocusable(false);
jScrollPane1.setViewportView(viewTextArea);
jScrollPane2.setViewportView(clientTable);
postTextField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
postTextFieldActionPerformed(evt);
}
});
kirimButton.setText("Kirim");
kirimButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kirimButtonActionPerformed(evt);
}
});
jLabel2.setText("Server");
serverTextField.setText("10.17.0.0");
jLabel3.setText("Port");
portTextField.setText("9999");
masukButton.setText("Masuk");
masukButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
masukButtonActionPerformed(evt);
}
});
jLabel4.setText("Username");
usernameTextField.setText("4 CF");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(postTextField)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(kirimButton))
.addComponent(jScrollPane1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 259, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(lbljpg)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(serverTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(portTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(usernameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(masukButton)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbljpg)
.addComponent(jLabel2)
.addComponent(serverTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(portTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(masukButton)
.addComponent(jLabel4)
.addComponent(usernameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 427, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(postTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kirimButton))))
.addContainerGap())
);
pack();
}// </editor-fold>
private void masukButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.server = serverTextField.getText();
this.port = new Integer(portTextField.getText());
this.username = usernameTextField.getText();
start();
}
private void kirimButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String message = "postText~" + username + "~" + postTextField.getText() + "~all~\n";
output.writeObject(message);
postTextField.setText("");
} catch (IOException ex) {
Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void postTextFieldActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
kirimButtonActionPerformed(evt);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate=”collapsed” desc=” Look and feel setting code (optional) “>
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ChatClient().setVisible(true);
}
});
}
// Variables declaration – do not modify
private javax.swing.JTable clientTable;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JButton kirimButton;
private javax.swing.JButton masukButton;
private javax.swing.JTextField portTextField;
private javax.swing.JTextField postTextField;
private javax.swing.JTextField serverTextField;
private javax.swing.JTextField usernameTextField;
private javax.swing.JTextArea viewTextArea;
private JLabel lbljpg ;
// End of variables declaration
class ListenFromServer extends Thread {
@Override
public void run() {
while (true) {
try {
String msg = (String) input.readObject();
String res;
String type = msg.split("~")[0];
String pengirim = msg.split("~")[1];
String text = msg.split("~")[2];
String kepada = msg.split("~")[3];
switch (type) {
case "recieveText":
res = pengirim + ": " + text;
viewTextArea.setText(viewTextArea.getText() + res + "\n");
break;
case "recievePrivateText":
res = pengirim + ": "+ text;
if (kepada.equals(username)) {
viewTextArea.setText(viewTextArea.getText() + res + "\n");
}
break;
case "login":
viewTextArea.setText(viewTextArea.getText() + pengirim + " sudah login…" + "\n");
clients.add(pengirim);
break;
case "logout":
viewTextArea.setText(viewTextArea.getText() + pengirim + " telah logout…" + "\n");
clients.remove(pengirim);
break;
case "list":
setTable(text);
break;
}
} catch (IOException e) {
System.out.println("Server has close the connection: " + e);
break;
} catch (ClassNotFoundException e2) {
}
}
}
private void setTable(String text) {
int rows = text.split(":").length -1;
Object[][] data = new Object[rows][1];
for (int i = 0; i < rows; i++) {
String t = text.split(":")[i];
data[i][0] = t;
}
String[] header = {"Clients"};
clientTable.setModel(new DefaultTableModel(data, header));
}
}
}
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.table.DefaultTableModel;
public class ChatClient extends javax.swing.JFrame {
/**
* Creates new form ChatClient
*/
private ObjectInputStream input;
private ObjectOutputStream output;
private Socket socket;
private String server, username;
private int port;
private List<String> clients;
public ChatClient() {
clients = new ArrayList();
initComponents();
}
public boolean start() {
try {
socket = new Socket(server, port);
} catch (Exception ec) {
System.out.println("Error connectiong to server:" + ec);
return false;
}
String msg = "Connection accepted " + socket.getInetAddress() + ":" + socket.getPort();
System.out.println(msg);
try {
input = new ObjectInputStream(socket.getInputStream());
output = new ObjectOutputStream(socket.getOutputStream());
} catch (IOException eIO) {
System.out.println("Exception creating new Input/output Streams: " + eIO);
return false;
}
new ChatClient.ListenFromServer().start();
try {
output.writeObject("login~" + username + "~" + username + " sedang login…~server~\n");
output.writeObject("list~" + username + "~" + username + " sedang login…~server~\n");
} catch (IOException eIO) {
System.out.println("Exception doing login : " + eIO);
disconnect();
return false;
}
return true;
}
private void disconnect() {
try {
// TODO add your handling code here:
output.writeObject("logout~" + username + "~"+ username + " sudah logout…~Server~\n");
} catch (IOException ex) {
//Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
try {
if (input != null) {
input.close();
}
} catch (Exception e) {
}
try {
if (output != null) {
output.close();
}
} catch (Exception e) {
}
try {
if (socket != null) {
socket.close();
}
} catch (Exception e) {
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
viewTextArea = new javax.swing.JTextArea();
jScrollPane2 = new javax.swing.JScrollPane();
clientTable = new javax.swing.JTable();
postTextField = new javax.swing.JTextField();
kirimButton = new javax.swing.JButton();
lbljpg = new javax.swing.JLabel(new ImageIcon("Documents:fb.jpg"));
jLabel2 = new javax.swing.JLabel();
serverTextField = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
portTextField = new javax.swing.JTextField();
masukButton = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
usernameTextField = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
viewTextArea.setEditable(false);
viewTextArea.setColumns(20);
viewTextArea.setLineWrap(true);
viewTextArea.setRows(5);
viewTextArea.setFocusable(false);
jScrollPane1.setViewportView(viewTextArea);
jScrollPane2.setViewportView(clientTable);
postTextField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
postTextFieldActionPerformed(evt);
}
});
kirimButton.setText("Kirim");
kirimButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kirimButtonActionPerformed(evt);
}
});
jLabel2.setText("Server");
serverTextField.setText("10.17.0.0");
jLabel3.setText("Port");
portTextField.setText("9999");
masukButton.setText("Masuk");
masukButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
masukButtonActionPerformed(evt);
}
});
jLabel4.setText("Username");
usernameTextField.setText("4 CF");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(postTextField)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(kirimButton))
.addComponent(jScrollPane1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 259, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(lbljpg)
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(serverTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(portTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(usernameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(masukButton)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbljpg)
.addComponent(jLabel2)
.addComponent(serverTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3)
.addComponent(portTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(masukButton)
.addComponent(jLabel4)
.addComponent(usernameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 427, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(postTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kirimButton))))
.addContainerGap())
);
pack();
}// </editor-fold>
private void masukButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.server = serverTextField.getText();
this.port = new Integer(portTextField.getText());
this.username = usernameTextField.getText();
start();
}
private void kirimButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String message = "postText~" + username + "~" + postTextField.getText() + "~all~\n";
output.writeObject(message);
postTextField.setText("");
} catch (IOException ex) {
Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void postTextFieldActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
kirimButtonActionPerformed(evt);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate=”collapsed” desc=” Look and feel setting code (optional) “>
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ChatClient.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ChatClient().setVisible(true);
}
});
}
// Variables declaration – do not modify
private javax.swing.JTable clientTable;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JButton kirimButton;
private javax.swing.JButton masukButton;
private javax.swing.JTextField portTextField;
private javax.swing.JTextField postTextField;
private javax.swing.JTextField serverTextField;
private javax.swing.JTextField usernameTextField;
private javax.swing.JTextArea viewTextArea;
private JLabel lbljpg ;
// End of variables declaration
class ListenFromServer extends Thread {
@Override
public void run() {
while (true) {
try {
String msg = (String) input.readObject();
String res;
String type = msg.split("~")[0];
String pengirim = msg.split("~")[1];
String text = msg.split("~")[2];
String kepada = msg.split("~")[3];
switch (type) {
case "recieveText":
res = pengirim + ": " + text;
viewTextArea.setText(viewTextArea.getText() + res + "\n");
break;
case "recievePrivateText":
res = pengirim + ": "+ text;
if (kepada.equals(username)) {
viewTextArea.setText(viewTextArea.getText() + res + "\n");
}
break;
case "login":
viewTextArea.setText(viewTextArea.getText() + pengirim + " sudah login…" + "\n");
clients.add(pengirim);
break;
case "logout":
viewTextArea.setText(viewTextArea.getText() + pengirim + " telah logout…" + "\n");
clients.remove(pengirim);
break;
case "list":
setTable(text);
break;
}
} catch (IOException e) {
System.out.println("Server has close the connection: " + e);
break;
} catch (ClassNotFoundException e2) {
}
}
}
private void setTable(String text) {
int rows = text.split(":").length -1;
Object[][] data = new Object[rows][1];
for (int i = 0; i < rows; i++) {
String t = text.split(":")[i];
data[i][0] = t;
}
String[] header = {"Clients"};
clientTable.setModel(new DefaultTableModel(data, header));
}
}
}
0 komentar:
Post a Comment