วิธีการสร้างของ Windows โปร่งแสงและรูปใน Java?

ภาพรวม: ในบทความนี้เราจะหารือเกี่ยวกับความโปร่งใสและหน้าต่างที่มีรูปทรงที่แตกต่างกันใน Java. ใน Java 7 แกว่งสนับสนุนคุณสมบัตินี้และทำให้องค์ประกอบ UI แกว่งมีความยืดหยุ่นและใช้งานง่าย.

การแนะนำ: ในบางโปรแกรม, หน้าต่างโปร่งใสเป็นความต้องการที่จะสนับสนุนการทำงานของ. ขณะนี้ใน Java, ความโปร่งใสสามารถดำเนินการได้. หน้าต่างโปร่งแสงจะถูกสร้างขึ้นโดยการเปลี่ยนความทึบแสงของตนโดยการใช้วิธีการที่เรียกว่า setOpacity ในส่วน JFrame. แต่เราต้องเข้าใจว่าหน้าต่างโปร่งแสงเป็นไปได้เฉพาะในกรณีที่ระบบปฏิบัติการที่รองรับสนับสนุน. และเรายังต้องให้แน่ใจว่าหน้าต่างที่ไม่ได้ตกแต่ง. ที่จะทำให้หน้าต่างชอบธรรม, คุณต้องโทร setUndecorated (จริง) วิธี. บางเวลาที่มันจะต้องมีการเปลี่ยนแปลงรูปร่างของ UI หน้าต่าง. ที่จะใช้มัน, เราจำเป็นต้องเรียกวิธีการ setShape ภายในวิธี componentResized. มันจะคำนวณรูปร่างเมื่อหน้าต่างมีการปรับขนาด.

ความเป็นมา: ใน Java UI, การสนับสนุนสำหรับหน้าต่าง translucency และความต้องการที่มีรูปทรงเป็นเวลานานสำหรับส่วนประกอบสวิง / AWT. สำหรับการเข้าถึงการพัฒนาพื้นเมืองคุณสมบัติเหล่านี้มีอยู่จากเวลานานกลับ. แต่มันก็ไม่สามารถเข้าถึงองค์ประกอบหลัก java. ใน Java6 เป็นต้นไป, สนับสนุนสำหรับฝ้าและหน้าต่างที่มีรูปทรงใช้ได้. แม้ต่อ translucency ระดับพิกเซลยังสนับสนุนใน Java7.

ประเภทของการสนับสนุนการ translucency และความโปร่งใส: เกาะชวา 7 สนับสนุนต่อไปนี้สามประเภทของการสนับสนุน.

TRANSLUCENT: คุณสมบัติในหน้าต่างนี้สามารถมีสีที่แตกต่างกัน แต่มีระดับเดียวกันของความทึบแสง. ดังนั้นค่าอัลฟาจะเหมือนกันสำหรับทุกพิกเซล. นี่คือผลที่เหมาะสมสำหรับการจางหายไปปิดหน้าต่างแล้วค่อยๆลดลงและเพิ่มค่าอัลฟา.

PERPIXEL_TRANSLUCENT: สถานที่แห่งนี้สนับสนุนค่าอัลฟาที่แตกต่างกันภายในหน้าต่างของตัวเอง. นี้จะใช้จะจางหายไปพื้นที่ที่เลือกของหน้าต่าง.

PERPIXEL_TRANSPARENT: สถานที่ให้บริการนี​​้รองรับรูปร่างที่แตกต่างกันของหน้าต่างมากกว่าสี่เหลี่ยมผืนผ้าแบบดั้งเดิม. ถ้าต่อความโปร่งใสพิกเซลได้รับการสนับสนุนแล้วรูปทรงแตกต่างกันเช่นวงกลม, สามเหลี่ยมที่สามารถสร้างขึ้น.

ก่อนที่เราจะใช้ใด ๆ ของคุณสมบัติข้างต้นเราต้องทดสอบการสนับสนุนภายใต้ระบบปฏิบัติการโกหก. การทดสอบสามารถทำได้โดยการใช้วิธีการ isWindowTranslucencySupported เป็นของชั้น java.awt.GraphicsDevice. มันต้องใช้เวลาของความโปร่งใสเป็น input และผลตอบแทนจริง / เท็จเพื่อแสดงการสนับสนุน.

ให้เราตรวจสอบรหัสตัวอย่างที่จะใช้คุณลักษณะ translucency. ในตัวอย่างนี้เราได้สร้างหน้าต่างโปร่งแสงเป็นรูปสี่เหลี่ยมผืนผ้าบนพื้นที่ข้อความ. ครั้งแรกที่เราได้ใช้งานโหมดการตกแต่งที่จะได้รับผลกระทบของความโปร่งใส. แล้วเราจะได้ตรวจสอบว่ามีระบบปฏิบัติการที่รองรับการสนับสนุนหรือไม่. ถ้าสนับสนุนผลที่ออกมาปรากฏบนกรอบหน้าต่าง.

Listing1: ตัวอย่าง translucency แสดงของหน้าต่าง JFrame

นำเข้า java.awt.Color;

นำเข้า java.awt.GraphicsDevice;

นำเข้า java.awt.GraphicsEnvironment;

นำเข้า java.awt.GridBagLayout;

นำเข้า java.awt.event.ComponentAdapter;

นำเข้า java.awt.event.ComponentEvent;

นำเข้า java.awt.geom.Rectangle2D;

นำเข้า javax.swing.JFrame;

นำเข้า javax.swing.JTextArea;

นำเข้า javax.swing.SwingUtilities;

ของประชาชน ชั้น TransRecFrame ขยาย JFrame {

/**

* สร้างกรอบสี่เหลี่ยมโปร่งใสด้วย 85% ความโปร่งใส

*/

ของประชาชน TransRecFrame() {

ซุปเปอร์(“กรอบสี่เหลี่ยมโปร่งแสง”);

//ตั้งรูปแบบ

setLayout(ใหม่ GridBagLayout());

//สร้างพื้นที่ข้อความ

สุดท้าย = JTextArea txtArea ใหม่ JTextArea(5, 50);

txtArea.setBackground(สี.CYAN);

เพิ่ม(txtArea);

//การเรียกร้องให้ปิดการใช้งานตกแต่ง

setUndecorated(จริง);

 

//โทร setShape เพื่อปรับขนาดรูปร่างเมื่อ widnow มีการปรับขนาด

addComponentListener(ใหม่ ComponentAdapter() {

@ Override

ของประชาชน ถือเป็นโมฆะ componentResized(ComponentEvent และ) {

setShape(ใหม่ Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//ทำให้หน้าต่าง 85% โปร่งใส

setOpacity(0.85ฉ);

//ตั้งค่าพารามิเตอร์อื่น ๆ

setLocationRelativeTo(เป็นศูนย์);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(จริง);

}

ของประชาชน คงที่ ถือเป็นโมฆะ หลัก(เชือก[] args) {

//สร้างสภาพแวดล้อมกราฟิก

Youth Venture GraphicsEnvironment GraphicsEnvironment =

.getLocalGraphicsEnvironment();

//ตรวจสอบว่าระบบปฏิบัติการที่สนับสนุน translucency

ถ้า (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {

System.out.println(“OS สนับสนุน translucency”);

ใหม่ TransRecFrame();

}

}

}

คุณสมบัติที่จะสนับสนุน translucency และรูปร่าง: ใน Java7 มีหลักสามคุณสมบัติที่มีเพื่อสนับสนุน translucency และรูปร่างของหน้าต่างเป็น.

  • translucency หน้าต่างเต็ม: ในวิธีนี้หน้าต่างเต็มรูปแบบโปร่งแสง.
  • ต่อ translucency พิกเซล: ในแนวทางนี้เป็นส่วนหนึ่งของหน้าต่างเป็นโปร่งแสง
  • หน้าต่างที่มีรูปทรง: ทำให้หน้าต่างที่มีรูปทรงแตกต่างกันเช่น ovale, วงกลม, ฯลฯ รูปสี่เหลี่ยมผืนผ้า.

ต่อ translucency พิกเซล:

เราได้เห็นแล้วว่าจะทำให้หน้าต่างโปร่งแสงสมบูรณ์ในตัวอย่างก่อนหน้า. ตอนนี้เราจะหารือเกี่ยวกับส่วนที่สองของการทำชุดของพิกเซลโปร่งแสงโดยใช้สีพื้นหลังของพวกเขา. มีข้อ จำกัด บางอย่างที่จะใช้สถานการณ์นี้. หน้าต่างไม่ควรจะเป็นแบบเต็มหน้าจอและระบบจะต้องสนับสนุน translucency ระดับพิกเซล. ส่วนที่เหลือของขั้นตอนจะคล้ายกับตัวอย่างข้างต้น.

ในตัวอย่างต่อไปนี้เราจะเห็นวิธีการ translucency ระดับพิกเซลตั้งอยู่ในกรอบ.

Listing2: พิกเซลระดับตัวอย่างแสดงการสนับสนุน translucency.

นำเข้า javax.swing.*;

นำเข้า java.awt *.;

นำเข้า java.awt.event.ActionEvent;

นำเข้า java.awt.event.ActionListener;

ของประชาชน ชั้น PixelTranslucency ขยาย JFrame {

ของประชาชน PixelTranslucency() {

ซุปเปอร์(“ตั้ง translucency ระดับพิกเซล”);

//กำหนดขนาดของ JFrame

setSize(250, 250);

//ตั้งวางออก

getContentPane().setLayout(ใหม่ GridLayout(6, 6));

//โทรสำหรับการตั้งค่าพิกเซล

สำหรับ(int I = 0; ผม &ลิตร; 16; i ){

เพิ่ม(ใหม่ แผงพิกเซล(255 – ผม * 12));

}

//ตั้งพื้นหลังและคุณสมบัติอื่น ๆ

setBackground(ใหม่ สี(0, 0, 0, 0));

setLocationRelativeTo(เป็นศูนย์);

setVisible(จริง);

}

ของประชาชน คงที่ ถือเป็นโมฆะ หลัก(เชือก[] args) {

Youth Venture GraphicsEnvironment GraphicsEnvironment =.getLocalGraphicsEnvironment();

//ตรวจสอบว่าหน้าต่างสนับสนุน translucency

ถ้า (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

ระบบ.ออก.println(“OS สนับสนุน translucency”);

ใหม่ PixelTranslucency();

}

} ส่วนตัว ชั้น แผงพิกเซล ขยาย JPanel {

ส่วนตัว แผงพิกเซล(int pixl) {

ซุปเปอร์();

setBackground(ใหม่ สี(0, 0, 255, pixl));

}

}

}

ของ Windows รูป:

ตอนนี้เราจะหารือเกี่ยวกับคุณลักษณะที่สำคัญอีกคนหนึ่งที่สนับสนุนโดยหน้าต่างรูป Java7.The สนับสนุนทุกประเภทของรูปทรงสิ่งที่เป็นความต้องการของผู้ใช้. คุณลักษณะนี้จะช่วยให้คุณสามารถสร้างรูปทรงเช่นวงกลมใด ๆ, สามเหลี่ยม, รูปหลายเหลี่ยมหรือรูปทรงที่ซับซ้อนเป็นไปได้. วิธี setShape ของชั้นหน้าต่างที่สามารถใช้ได้สำหรับการตั้งค่าคุณสมบัติ. แต่อีกครั้งที่เราต้องจำไว้ว่าโหมดเต็มหน้าจอไม่ควรอนุญาตและระบบปฏิบัติการที่สนับสนุน translucency.

ตัวอย่างต่อไปนี้แสดงการใช้งานของหน้าต่างที่มีรูปทรง.

Listing3: โค้ดตัวอย่างแสดงการใช้งานของหน้าต่างที่มีรูปทรง.

นำเข้า javax.swing.*;

นำเข้า java.awt *.;

นำเข้า java.awt.geom.Ellipse2D;

นำเข้า java.awt.geom.GeneralPath;

ของประชาชน ชั้น JavaShapedWindow ขยาย JFrame {

ของประชาชน JavaShapedWindow() {

ซุปเปอร์(“ตั้งหน้าต่างรูป”);

//ตั้ง OFF ชอบธรรมที่จะได้รับผลกระทบ

setUndecorated(จริง);

//ตั้งค่าขนาด

setSize(ใหม่ มิติ(250, 250));

//ตั้งค่าคุณสมบัติรูปหลายเหลี่ยม

= รูปหลายเหลี่ยมหลายเหลี่ยม ใหม่ รูปหลายเหลี่ยม();

polygon.addPoint(0, 100);

polygon.addPoint(50, 0);

polygon.addPoint(100, 100);

//ตั้งค่าของรูปร่าง

Ellipse2D.Double newCircle = ใหม่ Ellipse2D.Double(0, 50, 1.0*100, 1.0*100);

//ตั้งค่าคุณสมบัติเส้นทางทั่วไป

= GeneralPath gpath ใหม่ GeneralPath();

gpath.append(รูปหลายเหลี่ยม, จริง);

gpath.append(newCircle, จริง);

//กำหนดเส้นทาง

setShape(gpath);

//ตั้งรูปแบบกล่อง

getContentPane().setLayout(ใหม่ BoxLayout(getContentPane(), BoxLayout.X_AXIS));

เพิ่ม(กล่อง.createHorizo​​ntalGlue());

//สร้างคุณสมบัติฉลากและการตั้งค่า

JLabel newlabel = ใหม่ JLabel(“Java หน้าต่างรูป”);

newlabel.setForeground(สี.ขาว);

เพิ่ม(newlabel);

เพิ่ม(กล่อง.createHorizo​​ntalGlue());

//เนื้อหาชุดสีพื้นหลังของบานหน้าต่าง

getContentPane().setBackground(สี.สีฟ้า);

//สถานที่ตั้ง

setLocationRelativeTo(เป็นศูนย์);

setVisible(จริง);

}

ของประชาชน คงที่ ถือเป็นโมฆะ หลัก(เชือก[] args) {

Youth Venture GraphicsEnvironment GraphicsEnvironment =.getLocalGraphicsEnvironment();

//ตรวจสอบการสนับสนุนระบบปฏิบัติการสำหรับการให้บริการนี​​้

ถ้า (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

ระบบ.ออก.println(“OS สนับสนุน translucency”);

ใหม่ JavaShapedWindow();

}

}

}

นอกจากนี้เรายังสามารถใช้การรวมกันของสองคุณสมบัติเช่นหน้าต่าง translucency และรูปทรง. ที่จะใช้นี้, เรียกวิธีการ setOpacity กับกรอบของคุณ. หน้าต่างผลจะแสดงผลรวม. แต่เราควรจำระบบปฏิบัติการที่รองรับจะต้องสนับสนุนการ translucency ระดับพิกเซลและความโปร่งใสในระดับพิกเซล.

ข้อสรุป:

ในบทความนี้เราได้ครอบคลุมคุณสมบัติใหม่บางอย่างใน translucency java7.The และคุณสมบัติหน้าต่างที่มีรูปทรงเป็นที่น่าสนใจจริงๆและทำให้ java องค์ประกอบ UI ความยืดหยุ่นมากขึ้น. แต่ในเวลาเดียวกันเราต้องจำไว้ว่าระบบปฏิบัติการที่รองรับควรจะสนับสนุนคุณสมบัติเหล่านี้ทั้งหมด. มิฉะนั้นผลที่ออกมาจะมองไม่เห็น. ดังนั้นในการประยุกต์ใช้ตัวเองที่เราตรวจสอบการสนับสนุนระบบปฏิบัติการและแล้วใช้ผล. คุณลักษณะล่าสุดของ java ช่วยให้นักพัฒนาในการสร้างความแตกต่างของผลกระทบในด้าน UI. ในฐานะที่เราทุกคนรู้ว่ารูปลักษณ์และความรู้สึกเป็นสิ่งสำคัญของการประยุกต์ใช้เทคโนโลยีใด ๆ UI. ดังนั้นนักพัฒนาที่มีการติดตั้งมาพร้อมกับเครื่องมือที่จะทำให้ UI สบายมากขึ้นและน่าสนใจ.

============================================= ============================================== ซื้อหนังสือ techalpine ที่ดีที่สุดใน Amazon,en,ช่างไฟฟ้า CT Chestnutelectric,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share