Bagaimana untuk membuat Windows lut dan Shaped di Jawa?

Tinjauan: Dalam artikel ini kita akan membincangkan tentang ketelusan dan tingkap berbentuk berbeza di Jawa. Dalam java 7 swing menyokong ciri ini dan membuat komponen UI swing yang lebih fleksibel dan mesra pengguna.

Pengenalan: Dalam beberapa permohonan, tingkap telus adalah satu keperluan untuk menyokong fungsi. Sekarang di Jawa, ketelusan dapat dilaksanakan. Tetingkap lut dicipta dengan mengubah kelegapan dengan melaksanakan kaedah yang dipanggil setOpacity pada komponen JFrame. Tetapi kita harus faham bahawa tingkap lut hanya boleh dilakukan jika sistem operasi asas menyokongnya. Dan kita juga perlu memastikan bahawa tingkap tidak dihiasi. Untuk membuat tingkap undecorated, anda perlu memanggil setUndecorated (benar) kaedah. Beberapa kali ia juga diperlukan untuk menukar bentuk UI window. Untuk melaksanakannya, kita perlu memanggil kaedah setShape dalam kaedah componentResized. Ia akan mengira semula bentuk apabila tingkap yang saiznya.

Tanah belakang: Dalam java UI, sokongan untuk translucency dan berbentuk tingkap permintaan yang lama untuk komponen Swing / AWT. Untuk akses pembangunan berasal dari sifat-sifat ini boleh didapati dari masa yang lama kembali. Tetapi ia tidak boleh diakses kepada teras java komponen. Dalam Java6 seterusnya, sokongan untuk translucency dan tingkap berbentuk boleh didapati. Malah setiap translucency tahap pixel juga menyokong dalam Java7.

Jenis sokongan untuk translucency dan ketelusan: Java 7 menyokong berikut tiga jenis sokongan.

Lut: Dalam ciri ini tingkap boleh mempunyai warna yang berbeza tetapi dengan tahap yang sama kelegapan. Jadi nilai alpha adalah sama bagi semua piksel. Kesan ini adalah sesuai untuk pudar dari tingkap dan kemudian beransur-ansur berkurangan dan meningkatkan nilai alfa.

PERPIXEL_TRANSLUCENT: Harta tanah ini menyokong nilai-nilai alpha yang berbeza dalam tingkap itu sendiri. Ini digunakan untuk pudar rantau terpilih tingkap.

PERPIXEL_TRANSPARENT: Harta tanah ini menyokong pelbagai bentuk tingkap bukannya tradisional segi empat tepat. Jika setiap ketelusan pixel disokong maka pelbagai bentuk seperti bulatan, segi tiga boleh diwujudkan.

Sebelum kita menggunakan mana-mana ciri-ciri di atas, kita perlu menguji sokongan di bawah berbaring sistem operasi. Ujian ini boleh dilakukan dengan menggunakan kaedah isWindowTranslucencySupported tergolong dalam kelas yang java.awt.GraphicsDevice. Ia mengambil jenis ketelusan sebagai input dan pulangan benar / palsu untuk menunjukkan sokongan.

Mari kita lihat satu contoh kod untuk melaksanakan ciri translucency yang. Dalam contoh ini, kita telah mencipta sebuah tingkap lut segi empat tepat di atas kawasan teks. Mula-mula kita telah dilumpuhkan mod hiasan untuk mendapatkan kesan ketelusan. Kemudian kami telah menyemak jika sistem operasi asas menyokong atau tidak. Jika disokong kesan yang boleh dilihat pada tingkap bingkai.

Listing1: Contoh yang menunjukkan Translucency tingkap JFrame a

mengimport java.awt.Color;

mengimport java.awt.GraphicsDevice;

mengimport java.awt.GraphicsEnvironment;

mengimport java.awt.GridBagLayout;

mengimport java.awt.event.ComponentAdapter;

mengimport java.awt.event.ComponentEvent;

mengimport java.awt.geom.Rectangle2D;

mengimport javax.swing.JFrame;

mengimport javax.swing.JTextArea;

mengimport javax.swing.SwingUtilities;

awam kelas TransRecFrame memanjangkan JFrame {

/**

* Buat bingkai segiempat telus dengan 85% ketelusan

*/

awam TransRecFrame() {

super(“Frame Rectangular lut”);

//Menetapkan susun atur

setLayout(baru GridBagLayout());

//Mewujudkan satu kawasan teks

akhir JTextArea txtArea = baru JTextArea(5, 50);

txtArea.setBackground(Warna.CYAN);

menambah(txtArea);

//Panggilan untuk melumpuhkan hiasan

setUndecorated(benar);

 

//Hubungi setShape untuk mengubah saiz bentuk apabila widnow adalah saiznya

addComponentListener(baru ComponentAdapter() {

Override @

awam membatalkan componentResized(ComponentEvent dan) {

setShape(baru Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//Buat tingkap 85% telus

setOpacity(0.85f);

//Menetapkan parameter lain

setLocationRelativeTo(sifar);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(benar);

}

awam statik membatalkan utama(Rentetan[] args) {

//Mewujudkan persekitaran grafik

Belia Venture GraphicsEnvironment = GraphicsEnvironment

.getLocalGraphicsEnvironment();

//Memeriksa jika OS menyokong Translucency

jika (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.Lut)) {

System.out.println(“OS menyokong translucency”);

baru TransRecFrame();

}

}

}

Ciri-ciri untuk menyokong translucency dan bentuk: Dalam Java7 terdapat terutamanya tiga ciri yang ada untuk menyokong translucency dan bentuk tingkap.

  • Translucency tingkap penuh: Dalam pendekatan ini tingkap penuh lut.
  • Per translucency pixel: Dalam pendekatan ini sebahagian daripada tingkap lut
  • Tingkap berbentuk: Membuat tingkap berbentuk berbeza seperti ovale, bulatan, segi empat dan lain-lain.

Per translucency pixel:

Kita telah melihat bagaimana untuk membuat tingkap lut lengkap dalam contoh sebelum ini. Sekarang kita akan membincangkan bahagian kedua membuat set piksel lut dengan menggunakan warna latar belakang mereka. Terdapat beberapa batasan untuk melaksanakan senario ini. Tingkap tidak boleh skrin penuh dan sistem mesti menyokong translucency tahap pixel. Selebihnya prosedur adalah sama dengan contoh di atas.

Dalam contoh yang berikut, kita akan melihat bagaimana translucency tahap pixel ditetapkan dalam bingkai.

Listing2: Contoh yang menunjukkan pixel tahap sokongan translucency.

mengimport javax.swing.*;

mengimport java.awt. *;

mengimport java.awt.event.ActionEvent;

mengimport java.awt.event.ActionListener;

awam kelas PixelTranslucency memanjangkan JFrame {

awam PixelTranslucency() {

super(“Terletak translucency tahap pixel”);

//Tetapkan saiz JFrame yang

setSize(250, 250);

//Terletak meletakkan

getContentPane().setLayout(baru GridLayout(6, 6));

//Panggilan untuk menetapkan pixel

untuk(int i = 0; i < 16; i ){

menambah(baru Panel Pixel(255 – i * 12));

}

//Set latar belakang dan ciri-ciri lain

setBackground(baru Warna(0, 0, 0, 0));

setLocationRelativeTo(sifar);

setVisible(benar);

}

awam statik membatalkan utama(Rentetan[] args) {

Belia Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Semak jika tingkap menyokong translucency

jika (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

Sistem.daripada.println(“OS menyokong translucency”);

baru PixelTranslucency();

}

} swasta kelas Panel Pixel memanjangkan JPanel {

swasta Panel Pixel(int pixl) {

super();

setBackground(baru Warna(0, 0, 255, pixl));

}

}

}

Windows Shaped:

Sekarang kita akan membincangkan tentang satu lagi ciri penting disokong oleh tingkap berbentuk Java7.The menyokong semua jenis bentuk apa sahaja yang menjadi keperluan pengguna. Ciri-ciri ini membantu anda untuk membuat apa-apa bentuk seperti bulatan, segi tiga, poligon atau apa-apa bentuk yang kompleks mungkin. Kaedah setShape kelas tetingkap boleh didapati untuk menetapkan harta. Tetapi sekali lagi kita perlu ingat bahawa mod skrin penuh tidak harus dibenarkan dan sistem operasi menyokong translucency.

Contoh berikut menunjukkan penggunaan tingkap berbentuk.

Listing3: Kod contoh yang menunjukkan penggunaan tingkap berbentuk.

mengimport javax.swing.*;

mengimport java.awt. *;

mengimport java.awt.geom.Ellipse2D;

mengimport java.awt.geom.GeneralPath;

awam kelas JavaShapedWindow memanjangkan JFrame {

awam JavaShapedWindow() {

super(“Terletak berbentuk Window”);

//Terletak undecorated OFF untuk mendapatkan kesan

setUndecorated(benar);

//Menetapkan saiz

setSize(baru Dimensi(250, 250));

//Terletak hartanah poligon

Poligon = Polygon baru Polygon();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//Menetapkan nilai bentuk

Ellipse2D.Double newCircle = baru Ellipse2D.Double(0, 50, 1.0*100, 1.0*100);

//Terletak hartanah jalan umum

GeneralPath gpath = baru GeneralPath();

gpath.append(poligon, benar);

gpath.append(newCircle, benar);

//Tetapkan laluan

setShape(gpath);

//Menetapkan susun atur kotak

getContentPane().setLayout(baru BoxLayout(getContentPane(), BoxLayout.X_AXIS));

menambah(Box.createHorizontalGlue());

//Membuat label dan set ciri-ciri

JLabel newlabel = baru JLabel(“Jawa tingkap Shaped”);

newlabel.setForeground(Warna.putih);

menambah(newlabel);

menambah(Box.createHorizontalGlue());

//Set kandungan panel warna latar belakang

getContentPane().setBackground(Warna.cyan);

//Tetapkan lokasi

setLocationRelativeTo(sifar);

setVisible(benar);

}

awam statik membatalkan utama(Rentetan[] args) {

Belia Venture GraphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

//Semak sokongan OS untuk hotel ini

jika (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

Sistem.daripada.println(“OS menyokong translucency”);

baru JavaShapedWindow();

}

}

}

Kita juga boleh melaksanakan gabungan dua ciri-ciri seperti translucency dan berbentuk tingkap. Untuk melaksanakan ini, memanggil kaedah setOpacity untuk bingkai anda. Tetingkap hasil akan memaparkan kesan gabungan. Tetapi kita harus ingat sistem operasi asas mesti menyokong translucency tahap pixel dan ketelusan tahap pixel.

Kesimpulan:

Dalam artikel ini kita telah meliputi beberapa ciri-ciri baru dalam translucency java7.The dan ciri-ciri tingkap berbentuk benar-benar menarik dan membuat java UI komponen yang lebih fleksibel. Tetapi pada masa yang sama kita harus ingat bahawa sistem operasi asas harus menyokong semua sifat-sifat ini. Jika tidak, kesan tidak akan dapat dilihat. Jadi, dalam permohonan itu sendiri kita lihat sokongan OS dan kemudian melaksanakan kesan. Ciri-ciri terbaru java membolehkan pemaju untuk membuat pelbagai jenis kesan di sebelah UI. Seperti yang kita semua tahu bahawa rupa dan rasa adalah satu aspek penting dalam apa-apa permohonan berasaskan UI. Jadi pemaju yang kini dilengkapi dengan alat untuk membuat UI yang lebih menyenangkan dan menarik.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share