Membuat Aplikasi Client Server Chating Menggunakan Java

Program ini dibuat menggunakan NetBeans IDE 6.9, terdiri dari 5 packages. Sekarang saya akan membuat packages yang pertama dengan nama “Chat” (tanpa tanda kutip). Di dalam packages Chat terdapat 2 class java, yaitu ChatDisplay.java dan ChatRoom.java
Sekarang kita buat dulu class ChatDisplay.java
=====================================
package Chat;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import java.awt.BorderLayout;
public class ChatDisplay extends JPanel {
private JTextArea chat;
public ChatDisplay() {
setLayout(new BorderLayout());
chat=new JTextArea();
chat.setEditable(false);
chat.setLineWrap(true);
chat.setWrapStyleWord(true);
add(new JScrollPane(chat));
}
public synchronized void updateChat(String msg) {
chat.append(“\n” + msg);
chat.setCaretPosition(chat.getText().length());
}
}
=========================================
Setelah itu kita buat class ChatRoom.java
=========================================
package Chat;
import User.UserDisplay;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
public class ChatRoom extends JFrame {
private ChatDisplay chatDisplay;
protected UserDisplay userDisplay;
public ChatRoom() {
super(“by jogjavasia.com”);
chatDisplay=new ChatDisplay();
userDisplay=new UserDisplay();
JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true);
splitPane.setLeftComponent(userDisplay);
splitPane.setRightComponent(chatDisplay);
splitPane.setDividerSize(3);
add(splitPane);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void updateChat(String msg) {
chatDisplay.updateChat(msg);
}
public void setUserList(String userlist) {
userDisplay.setUserList(userlist);
}
}

PaintComponent Membuat Form Berwarna Gradient

Awal belajar Java di Netbeans hal pertama yang saya tanyakan adalah gimana caranya supaya membuat Panel yang standar NetBeans cuman bisanya satu warna doang menjadi lebih berwarna (yaaa.... seperti ada efek gradasi warna dari 2 warna yag berbeda).

Pengen tau, cari tau, sudah tau, akhirnya berbagi tau.... hehe

Kira-kira seperti ini...














>> Kodingannya kira-kira seperti ini... (Saya buat dalam Package "komponen")
// Panel.java

package komponen;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.GeneralPath;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;

/**
 *
 * @author Jie
 */
public class Panel extends JPanel {

    private static final long serialVersionUID = -1;
    private BufferedImage gradientImage;
    private Color white = Color.WHITE;
    private Color cyan = Color.CYAN;

    /**
     * membuat panel white cyan
     */
    public Panel() {
        super();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (isOpaque()) {
            Graphics2D g2 = (Graphics2D) g.create();
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

            setUpGradient();
            g2.drawImage(gradientImage, 0, 0, getWidth(), getHeight(), null);

            int width = getWidth();
            int height = getHeight() * 5 / 100;

            Color light = new Color(1F, 1F, 1F, 0.5F);
            Color dark = new Color(1F, 1F, 1F, 0.0F);

            GradientPaint paint = new GradientPaint(0, 0, light, 0, height, dark);
            GeneralPath path = new GeneralPath();
            path.moveTo(0, 0);
            path.lineTo(0, height);
            path.curveTo(0, height, width / 2, height / 2, width, height);
            path.lineTo(width, 0);
            path.closePath();

            g2.setPaint(paint);
            g2.fill(path);

            paint = new GradientPaint(0, getHeight(), light, 0, getHeight() - height, dark);
            path = new GeneralPath();
            path.moveTo(0, getHeight());
            path.lineTo(0, getHeight() - height);
            path.curveTo(0, getHeight() - height, width / 2, getHeight() - height / 2, width, getHeight() - height);
            path.lineTo(width, getHeight());
            path.closePath();

            g2.setPaint(paint);
            g2.fill(path);
            g2.dispose();
        }
    }

    /**
     * membuat gambar background gradient
     */
    private void setUpGradient() {
        gradientImage = new BufferedImage(1, getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = (Graphics2D) gradientImage.getGraphics();
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

        GradientPaint paint = new GradientPaint(0, 0, white, 0, getHeight(), cyan);

        g2.setPaint(paint);
        g2.fillRect(0, 0, 1, getHeight());
        g2.dispose();
    }
}





// PanelDao.java

package komponen;

/**
 *
 * @author Jie
 */
public interface PanelDao {
    public static final int BACKGROUND_IMAGE_CENTER_BOTTOM = 0;
    public static final int BACKGROUND_IMAGE_CENTER_MIDDLE = 1;
    public static final int BACKGROUND_IMAGE_CENTER_TOP = 2;
    public static final int BACKGROUND_IMAGE_LEFT_BOTTOM = 3;
    public static final int BACKGROUND_IMAGE_LEFT_MIDDLE = 4;
    public static final int BACKGROUND_IMAGE_LEFT_TOP = 5;
    public static final int BACKGROUND_IMAGE_RIGHT_BOTTOM = 6;
    public static final int BACKGROUND_IMAGE_RIGHT_MIDDLE = 7;
    public static final int BACKGROUND_IMAGE_RIGHT_TOP = 8;
    public static final int BACKGROUND_IMAGE_STRECT = 9;
    public static final int BACKGROUND_IMAGE_TILED = 10;
}



// PanelImpl.java

package komponen;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Paint;
import javax.swing.Icon;
import javax.swing.JPanel;

/**
 *
 * @author Jie
 */
public class PanelImpl extends JPanel implements PanelDao{

    private static final long serialVersionUID = 1L;
    private Icon backgroundImage;
    private int backgroundImageType;
    private Paint backgroundPaint;
    private boolean opaqueGradient;
    private boolean opaqueImage;
    private Image gambar;

    public PanelImpl() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public Icon getBackgroundImage() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public int getBackgroundImageType() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public Paint getBackgroundPaint() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public boolean isOpaqueGradient() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public boolean isOpaqueImage() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected void paintComponent(Graphics g) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setBackgroundImage(Icon backgroundImage) throws IllegalArgumentException {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setBackgroundImageType(int backgroundImageType) throws IllegalArgumentException {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setBackgroundPaint(Paint backgroundPaint) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setOpaqueGradient(boolean opaqueGradient) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setOpaqueImage(boolean opaqueImage) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }
}





>> cara menggunakannya tinggal drag n drop Panel.java ke Frame yang akan kita buat..


Penampakannya...

Penggunaan dan Perbedaan Modifier Pada Java

Penggunaan modifier berfungsi untuk melakukan enkapsulasi (membungkus data) pada objeck. Dengan menggunakan modifier kita dapat menentukan siapa saja yang boleh menggunakan atau mengakses member dari suatu objek.
Ada empat macam modifier yang dikenal oleh Java, yaitu private, protected, public dan tanpa modifier.
Class Modifier
Bentuk penggunaan modifier pada class:
modifier class NamaClass{
 …
 …
}
Modifier Keterangan
(default) Class visible atau dapat digunakan hanya pada package yang sama
public Class visible terhadap semua package yang berbeda – beda
final Class tidak dapat diturunkan lagi / extends
Contoh penggunaan:
public class Manusia{
....
....
}
Method Modifier
Bentuk penggunaan method modifier:
modifier tipe-data namaMethod(parameter){
  …
  …
}
Berikut ini adalah daftar modifier yang dapat digunakan pada method.
Modifier Keterangan
(default) Method visible atau dapat digunakan hanya pada package yang sama
public Method visible pada semua package
private Method visible hanya di dalam class itu sendiri
protected Method visible didalam package dan sub classnya
static Lihat sub bab sebelumnya
final Method tidak dapat diubah / dioverride pada subclass (dibahas pada bab selanjutnya)
abstract Method harus dioverride / didefinisikan pada subclassnya (dibahas pada bab selanjutnya)
Contoh penggunaan:
public class Manusia{
  private String nama;
  private String jenkel;

  public void setNama(String nama){
   this.nama=nama;
  }
  public void setJenkel(String jenkel){
   this.jenkel=jenkel;
  }
  public void cetak(){
   System.out.println("Nama : "+nama);
   System.out.println("Jenis Kelamin : "+jenkel);
  }
}

public class DemoManusia{
 public static void main(String args[]){
  Manusia m = new Manusia();
  m.setNama("Zamzam");
  m.setJenkel("Laki-laki");
  m.cetak();
 }
}

Sistem Informasi Rental Kendaraan Bermotor dengan Java

berikut ini saya sajikan design sistem informasi rental kendaraan bermotor yang dibuat dengan java netbeans dan database mysql. anda bisa meniru tampilan design berikut ini jika anda hendak membuat sistem informasi rental kendaraan bermotor atau sejenisnya

semoga saja tampilan design dibawah ini bisa menginspirasi anda untuk merancang sebuah sistem informasi yang anda butuhkan

CONTOH TAMPILAN

Tutorial Lengkap Cara Menginstal Java Netbeans Di Linux

Setelah kita mencoba untuk melakukan instalasi java di windows, sekarang kita akan mencoba untuk melakukan instalasi di sistem operasi Linux. Cara ini berlaku untuk semua distro atau distribusi linux yang ada.
Tidak sedikit pengguna yang kesulitan untuk melakukan instalasi java di linux, selain masih kurangnya pengalaman dalam menggunakan linux, instalasi java di linux juga tidak terlalu bersahabat, berbeda dengan instalasi di windows yang di manjakan dengan user interface secara grafis. Namun semua itu tetap tidak bisa di jadikan alasan, kita harus mencoba hingga berhasil Trik Mudah Menginstall Java di Sistem Operasi Linux Image .
Silahkan anda download di situs oracle jangan lupa untuk memilih versi Linux. Setelah berhasil di download, silahkan ikuti cara-cara di bawah ini :
  • simpan program java yang telah di download di directory home dari user yang ingin menginstall java, disini saya memakai user yang bernama rdp, jadi directory home-nya seperti ini /home/rdp/ .
  • buka console atau terminal untuk mengeksekusi program biner yang telah di download. Ketik command berikut pada layar console : ./jdk-6u10-linux-i586.bin. Sesuaikan versi Java yang anda download. Maka dilayar console akan seperti gambar di bawah ini
Trik Mudah Menginstall Java di Sistem Operasi Linux Image
  • setelah kita mengeksekusi, maka akan tampil license dari java. Tekan enter terus, jika ingin membaca lengkap license, jika tidak anda bisa menekan tombol q. Tampilan gambarnya akan seperti di bawah ini :
Trik Mudah Menginstall Java di Sistem Operasi Linux Image
  • setelah anda membaca license, maka program biner tersebut akan diekstrak ke dalam directory /home/rdp/. Tampilan gambarnya seperti di bawah ini
Trik Mudah Menginstall Java di Sistem Operasi Linux Image
  • setelah selesai mengekstrak, maka tampilan dari layar console akan seperti gambar di bawah ini :
Trik Mudah Menginstall Java di Sistem Operasi Linux Image
  • saatnya kita mengeset PATH, agar program-program biner Java dapat dieksekusi oleh user rdp. Buka text editor yang ada di versi Linux yang anda pakai, semisal : vim, kwrite, kate, pico, joe, mc. Setelah anda buka text editor, ketik command seperti ini : export PATH=$PATH:/home/rdp/jdk1.6.0_10/bin
    sesuaikan versi Java yang anda pakai. Tampilan gambarnya seperti gambar berikut
Trik Mudah Menginstall Java di Sistem Operasi Linux Image
  • logout atau restart agar seting PATH yang kita lakukan dapat berfungsi
  • setelah melakukan logout saatnya kita mengetest, apakah PATH yang kita setting benar. Buka console atau terminal, kemudian ketik command : javac –version . Jika seting PATH benar, maka akan memberikan output versi Java yang anda pakai.
Trik Mudah Menginstall Java di Sistem Operasi Linux Image
Demikianlah tulisan singkat mengenai instalasi java di sistem operasi linux, yang masih sering di keluhkan oleh para pemula saat melakukan instalasi Java. Semoga bermanfaat dan tidak menyerah dalam belajar pemrograman Java. Kita bertemu di edisi mendatang. Selamat mencoba!

Membatasi Jumlah Input Karakter Pada JTextField

JTextField yang disediakan oleh Java umumnya belum memiliki pembatasan jumlah karakter pada JTextField, hal ini dapat menyebabkan tidak sinkonnya apabila kita melakukan pembacaan data dari Database yang memiliki jumlah karakter. Oleh sebab itu untuk menghindari terjadi exception pada saat penyimpanan pada database maka kita sebaiknya melakukan pembatasan pada JTextField yang digunakan sesuai dengan panjang karakter dari field yang ada di database.
pembahasan kali ini adalah bagaimana kita membuat JTextField yang kita gunakan itu bisa memiliki jumlah karakter sehingga user atau pengguna hanya bisa memasukkan String yang memiliki karakter maksimum sesuai yang telah kita sediakan.
Pertama kita buat terlebih dahulu satu class JTextFieldLimit yang diextendkan dari Plain Document, dan source codenya seperti berikut ini :
import javax.swing.text.*;

public class JTextFieldLimit extends PlainDocument {
    private int limit;
    // Opsi untuk merubah ke Uppercase
    private boolean toUppercase = false;

    JTextFieldLimit(int limit) {
        super();
        this.limit = limit;
    }

    JTextFieldLimit(int limit, boolean upper) {
        super();
        this.limit = limit;
        toUppercase = upper;
    }

    public void insertString
            (int offset, String  str, AttributeSet attr)
            throws BadLocationException {
        if (str == null) return;

        if ((getLength() + str.length()) <= limit) {
            if (toUppercase) str = str.toUpperCase();
            super.insertString(offset, str, attr);
        }
    }
}
Setelah class tersebut dibuat, selanjutnya anda tinggal menggunakannya di class-class yang diperlukan, berikut contoh penggunaannya :
import java.awt.*;
import javax.swing.*;

public class Tester extends JApplet{
    JTextField textfield1;
    JLabel label1;

    public void init() {
        getContentPane().setLayout(new FlowLayout());
        //
        label1 = new JLabel("Maksimum 10 Karakter");
        textfield1 = new JTextField(15);
        getContentPane().add(label1);
        getContentPane().add(textfield1);
        textfield1.setDocument
                (new JTextFieldLimit(10));
    }
}

Membuat Enkripsi Untuk Pengamanan Data Di Java Netbeans

didalam membuat suatu program yang berisi data data ada kalanya si pembuat memiliki hak untuk menjaga keamanan dan keaslian data yang ada.  ada beberapa cara salah satunya dengan enkripsi data. karena dengan menggunakan enkripsi, data bisa dimanipulasi menjadi kumpulan kata yang sulit untuk diartikan oleh user lain.nah kali ini yang akan dibahas didalam blog ini yaitu tentang ENKRIPSI DATA didalam netbeans.
ini salah satu contoh sederhana, mungkin TERAMAT sangat SEDERHANA :D


didalam button submit diletakkan coding ini :

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        char[] kr ={'0','1','2','3','4','5','6','7','8','9',' ','.','□',+
                 'a','b','c','d','e','f','g','h','i','j','k','l','m',+
                'n','o','p','q','r','s','t','u','v','w','x','y','z'};
        String bantu1 = "";
     
         //enkripsi
        char[] cArray1 =(text.getText()).toCharArray();

        for (char c1 : cArray1){
            for(int i=0; i<=38; i++){
                if(c1 == kr[i]){
                   i = i+(Integer.parseInt(geser.getText()));
                   if(i>=39){
                       i = i-39;
                    }
                    c1 = kr[i];
                    bantu1 = bantu1 + c1;
                 }
            }
        }
        hasil.setText(bantu1);

    }

silahkan dicoba :)

adapula yang tentang Dekripsi, dekripsi sendiri merupakan suatu kebalikan dari enkripsi. atau sebuah program yang menjalankan atau mengembalikan kembali nilai yang telah diubah ke dalam enkripsi tadi :

masukkan coding ini kedalam submit yang ke-2 :
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        char[] kr ={'0','1','2','3','4','5','6','7','8','9',' ','.',+
                 'a','b','c','d','e','f','g','h','i','j','k','l','m',+
                'n','o','p','q','r','s','t','u','v','w','x','y','z'};
        String bantu2 = "";
        
         //enkripsi
        char[] cArray1 =(hasil.getText()).toCharArray();

        for (char c1 : cArray1){
            for(int i=0; i<=37; i++){
                if(c1 == kr[i]){
                   i = i-(Integer.parseInt(geser.getText()));
                   if(i<=-1){
                       i = i+38;
                    }
                    c1 = kr[i];
                    bantu2 = bantu2 + c1;
                 }
            }
        }
        hasil2.setText(bantu2);

    }

hasilnya akan seperti ini :)

ini yang sebagian dari tugas saya juga :D

selamat mencoba :)
untuk tampilan yang lebih menarik lainnya bisa diatur menurut kreatifitas masing masing :)

Membuat Form Yang Transparan di Java Netbeans

Pastinya sangat menarik jika kita bisa membuat form menjadi transparan. form kita terlihat lebih elegant dan sangat bergaya. bagamana caranya. simak tutorial yang berhasil saya dapatkan di google. namun belum begitu saya pelajari. hehehe. saya posting disini dulu biar gampang nyarinya kalau kalau udah punya waktu untuk berexpertimen

 

Purpose

This tutorial demonstrates usage of Translucent and Shaped Windows in Java Swing applications.

Time to Complete

Approximately 30 minutes.

Overview

As of the Java SE 6 update 10 (6u10) release, you can add translucent and shaped windows to your Swing applications. This functionality is part of the public AWT package in JDK 7. You can create windows of three forms-
Window with uniform translucency : You can create window with uniform translucency where each pixel has the same translucency (or alpha) value.
Window with per-pixel translucency : You can create window where each pixel has its own alpha value. Make a part of the window translucent.

Window with any shape object :
You can create windows with a certain shape like circle, oval etc.

Software and Hardware Requirements

The following is a list of software requirements:
  • Download and install JDK 7.0 at this link.
  • Download and install NetBeans 7.0.1 at this link.

Prerequisites

Before starting this tutorial, you should have the software installed as listed under Software Requirements.

How to Implement Uniform Translucency

Windows with uniform translucency have the same translucency for each pixel. You can create uniform translucency by invoking the setOpacity(float) method in the Window class. The float argument passed to this method should be between 0 and 1. It represents the translucency of the window. The smaller the number, the more transparent the window.
The following example creates a window that is 55% opaque (45% translucent). If the underlying platform does not support translucent windows, the example exits.
1. Create a New Project. Select File > New Project.
Show Screenshot for Step

2. Select Java from the Categories column and Java Application from the Projects column and then click Next.
Show Screenshot for Step


3. Perform the following steps.
a. Name the project TranslucentWindow.
b. Uncheck the Create Main Class check box.
c. Click Finish.
Show Screenshot for Step


4. Right-click TranslucentWindow Project and select New > JFrame Form .
Show Screenshot for Step

5. Name the JFrame  TranslucentWindowDemo , package name demo, and then click Finish.
Show Screenshot for Step


6. Perform the following steps :
a. Right-click  TranslucentWindowDemo.java and select Open .
Show Screenshot for Step
b. Click Source tab.

7. Add the following import statements to the java class, TranslucentWindow.java
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import static java.awt.GraphicsDevice.WindowTranslucency.*;


Show Screenshot for Step

8. Write the following lines of code in the main() method to determine whether translucency is supported by your system’s graphic device.
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();

Show Screenshot for Step
Not all platforms support these capabilities. An UnsupportedOperationException exception is thrown when a platform that does not support these features. Hence it is best practice to first check that the platform supports the capability. The GraphicsDevice class provides isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency) method
that you can use for this purpose. You can pass one of three enum values, defined in
GraphicsDevice.WindowTranslucency, namely: PERPIXEL_TRANSLUCENT, TRANSLUCENT, PERPIXEL_TRANSPARENT.

9. Add the below code to the main method to exit the program if translucency is not supported by the graphic device.

if (!gd.isWindowTranslucencySupported(TRANSLUCENT)) {
System.err.println("Translucency is not supported");
System.exit(0);
}

Show Screenshot for Step

10. Perform the following steps to the constructor of the class, TranslucentWindowDemo() .

1. Delete the below NetBeans generated line of code.
initComponents();
Show Screenshot for Step
2. Add the following lines to set the properties of the frame.
super("TranslucentWindowDemo");
setLayout(new GridBagLayout());
setSize(300,200);
setLocationRelativeTo(null);
setUndecorated(true);
getContentPane().setBackground(Color.blue);

Show Screenshot for Step
11. Add the below code to the constructor to create a Button, Close and add the button to the frame.
JButton btnClose = new JButton("Close");
add(btnClose);

Show Screenshot for Step

12. To the constructor, add event handling code to the Close button.
ActionListener al;
al = new ActionListener() {

public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
};
btnClose.addActionListener (al);

Show Screenshot for Step
The Close button responds to click event and closes the Frame .

13. Perform the following changes to the run() method .
1. Delete the below NetBeans generated line of code.
new TranslucentWindowDemo().setVisible(true);
Show Screenshot for Step
2. Next add the below lines of code.
TranslucentWindowDemo tw = new TranslucentWindowDemo();
tw.setOpacity(0.55f);
tw.setVisible(true);

Show Screenshot for Step
The above code performs the following :
1. Starts a thread to create the GUI.
2. Sets the transluency of the window to 55% .
3. Displays the window .

14. In the Projects pane, right-click TranslucentWindowDemo.java and choose Run File.
Show Screenshot for Step

15. The output with 55% translucent window will be as below.  You can click the Close button to close the Window.
Show Screenshot for Step
Note that the button is also affected by the uniform translucency. Setting the opacity affects the whole window, including any components that the window contains.
You can test the application with different opacity values .

How to implement Shaped Windows

 

A shaped window is an undecorated window whose appearance conforms to a specific shape . Pixels outside of the shape are transparent and reveal the background.
Java 7 allows you to create Window of various shapes. You can create circle, triangle, elliptic windows or more complex shape. You can create a shaped window by invoking the setShape(Shape) method in the Window class. The Shape passed to the method determines how the window is clipped.The following example creates an oval-shaped window. If the underlying platform does not support shaped windows, the example exits.
1. Right-click TranslucentWindow Project and select New > JFrame Form .
Show Screenshot for Step

2. Name the class ShapedWindowDemo, package name demo and then click Finish.

Show Screenshot for Step

3. Perform the following steps:
1. Right click ShapedWindowsDemo.java and select Open.
Show Screenshot for Step 2. Click Source tab.

4. Add the following import statements to the java class, ShapedWindowDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.Ellipse2D;
import static java.awt.GraphicsDevice.WindowTranslucency.*;


Show Screenshot for Step

5. Add the following lines of code in the main method to determine whether translucency is supported by your system’s graphic device.

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
final boolean isTranslucencySupported= gd.isWindowTranslucencySupported(PERPIXEL_TRANSPARENT);

Show Screenshot for Step

6. Add the below code to the main method to exit the program if translucency is not supported by the graphic device.

if (!gd.isWindowTranslucencySupported(PERPIXEL_TRANSPARENT)) {
System.err.println("Shaped windows are not supported");
System.exit(0);
}


Show Screenshot for Step

7. Perform the following steps to the constructor of the class, ShapedWindowDemo() .

1. Delete the below NetBeans generated line of code.
initComponents();
Show Screenshot for Step
2. Add the following lines of code .
super("ShapedWindow");
setLayout(new GridBagLayout());
addComponentListener(new ComponentAdapter() {

@Override
public void componentResized(ComponentEvent e) {
setShape(new Ellipse2D.Double(0, 0, getWidth(), getHeight()));
}
});
setUndecorated(true);
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new JButton("I am a Button"));

Show Screenshot for Step

8. In the Projects pane, right-click ShapedWindowDemo.java and choose Run File.
 
Show Screenshot for Step
The output will be as below
Show Screenshot for Step


9. Make the following changes to the run() method.
1. Delete the below line of code.
new ShapedWindowDemo().setVisible(true);
Show Screenshot for Step
2. Add the following lines of code .
ShapedWindowDemo sw = new ShapedWindowDemo();
sw.setOpacity(0.7f);
sw.setVisible(true);

Show Screenshot for Step

The above code is used to set the Transparency of the window to 70%.

10. In the Projects pane, right-click ShapedWindowDemo.java and choose Run File.
 
Show Screenshot for Step
The output with 70% translucent shaped window will be as below.
Show Screenshot for Step

Artikel Lainnya