ວິ​ທີ​ການ​ສ້າງ Windows translucent ແລະ​ຮູບ​ຮ່າງ​ຂອງ​ໃນ​ເກາະ​ຊາ​ວາ?

ພາບ​ລວມ: ໃນ​ບົດ​ຄວາມ​ນີ້​ພວກ​ເຮົາ​ຈະ​ປຶກ​ສາ​ຫາ​ລື​ກ່ຽວ​ກັບ​ຄວາມ​ໂປ່ງ​ໃສ​ແລະ​ປ່ອງ​ຢ້ຽມ​ເປັນ​ຮູບ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ຢູ່​ໃນ​ເກາະ​ຊາ​ວາ. ໃນ​ເກາະ​ຊາ​ວາ 7 swing ສະ​ຫນັບ​ສະ​ຫນູນ​ຄຸນ​ສົມ​ບັດ​ນີ້​ແລະ​ເຮັດ​ໃຫ້​ອົງ​ປະ​ກອບ UI swing ຫຼາຍ​ປ່ຽນ​ແປງ​ໄດ້​ແລະ​ຜູ້​ຊົມ​ໃຊ້​ເປັນ​ມິດ.

ການ​ນໍາ​ສະ​ເຫນີ: ໃນ​ໃບ​ຄໍາ​ຮ້ອງ​ບາງ, ປ່ອງ​ຢ້ຽມ​ໂປ່ງ​ໃສ​ແມ່ນ​ຮຽກ​ຮ້ອງ​ຕ້ອງ​ການ​ເພື່ອ​ສະ​ຫນັບ​ສະ​ຫນູນ​ການ​ທໍາ​ງານ​ຂອງ​ຕົນ​ໄດ້. ໃນ​ປັດ​ຈຸ​ບັນ​ຢູ່​ໃນ​ເກາະ​ຊາ​ວາ, ຄວາມ​ໂປ່ງ​ໃສ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ. ປ່ອງ​ຢ້ຽມ translucent ແມ່ນ​ສ້າງ​ໂດຍ altering OPAC ຂອງ​ຕົນ​ໂດຍ​ການ​ປະ​ຕິ​ບັດ​ວິ​ທີ​ການ​ເອີ້ນ​ວ່າ setOpacity ກ່ຽວ​ກັບ​ອົງ​ປະ​ກອບ JFrame ເປັ​​ນ. ແຕ່​ພວກ​ເຮົາ​ຕ້ອງ​ເຂົ້າ​ໃຈ​ວ່າ​ເປັນ​ປ່ອງ​ຢ້ຽມ translucent ແມ່ນ​ເປັນ​ໄປ​ໄດ້​ພຽງ​ແຕ່​ຖ້າ​ວ່າ​ລະ​ບົບ​ການ​ປະ​ຕິ​ບັດ​ການ​ທີ່​ຕິດ​ພັນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ມັນ. ແລະ​ພວກ​ເຮົາ​ຍັງ​ຈໍາ​ເປັນ​ຕ້ອງ​ໃຫ້​ແນ່​ໃຈວ່​າ​ປ່ອງ​ຢ້ຽມ​ບໍ່​ໄດ້ decorated. ເພື່ອ​ເຮັດ​ໃຫ້​ເປັນ​ປ່ອງ​ຢ້ຽມ undecorated, ທ່ານ​ຈໍາ​ເປັນ​ຕ້ອງ​ໂທ​ຫາ setUndecorated (ຄວາມ​ຈິງ) ວິ​ທີ​ການ. ທີ່​ໃຊ້​ເວ​ລາ​ບາງ​ຄົນ​ມັນ​ຕ້ອງ​ມີ​ການ​ປ່ຽນ​ແປງ​ຮູບ​ຮ່າງ​ຂອງ UI window ໄດ້. ເພື່ອ​ປະ​ຕິ​ບັດ​ມັນ, ພວກ​ເຮົາ​ຈໍາ​ເປັນ​ຕ້ອງ​ໂທ​ຫາ​ວິ​ທີ​ການ setShape ພາຍ​ໃນ​ວິ​ທີ​ການ componentResized ໄດ້. ມັນ​ຈະ recalculate ຮູບ​ຮ່າງ​ໃນ​ເວ​ລາ​ທີ່​ປ່ອງ​ຢ້ຽມ​ນັ້ນ resized.

ກັບ​ຄືນ​ໄປ​ບ່ອນ​ດິນ: ໃນ​ເກາະ​ຊາ​ວາ UI, ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ Windows translucent ແລະ​ຮູບ​ນີ້​ແມ່ນ​ຄວາມ​ຕ້ອງ​ການ​ທີ່​ໃຊ້​ເວ​ລາ​ຍາວ​ນານ​ສໍາ​ລັບ​ສ່ວນ​ປະ​ກອບ swing / AWT. ສໍາ​ລັບ​ການ​ເຂົ້າ​ເຖິງ​ການ​ພັດ​ທະ​ນາ native ກັບ​ຄຸນ​ສົມ​ບັດ​ເຫຼົ່າ​ນີ້​ແມ່ນ​ມີ​ຢູ່​ຈາກ​ທີ່​ໃຊ້​ເວ​ລາ​ຍາວ​ນານ​ກັບ​ຄືນ. ແຕ່​ວ່າ​ມັນ​ບໍ່​ເຂົ້າ​ກັບ​ອົງ​ປະ​ກອບ​ຫຼັກ​ຂອງ​ເກາະ​ຊາ​ວາ. ໃນ Java6 ເປັນ​ຕົ້ນ​ໄປ, ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ​ການ translucent ແລະ​ປ່ອງ​ຢ້ຽມ​ຮູບ​ມີ. ເຖິງ​ແມ່ນ​ວ່າ​ຕໍ່ translucent ລະ​ດັບ pixels ລວງ​ແມ່ນ​ຍັງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ໃນ Java7.

ປະ​ເພດ​ຂອງ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ​ການ translucent ແລະ​ຄວາມ​ໂປ່ງ​ໃສ: ເກາະ​ຊາ​ວາ 7 ສະ​ຫນັບ​ສະ​ຫນູນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ສາມ​ປະ​ເພດ​ຂອງ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ.

translucent: ໃນ​ຄຸນ​ນະ​ສົມ​ບັດ​ນີ້​ປ່ອງ​ຢ້ຽມ​ສາ​ມາດ​ມີ​ສີ​ສັນ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ແຕ່​ມີ​ລະ​ດັບ​ດຽວ​ກັນ​ຂອງ OPAC. ດັ່ງ​ນັ້ນ​, ມູນ​ຄ່າ​ການ​ບໍ່​ມີ​ເພດ​; ແມ່ນ​ອັນ​ດຽວ​ກັນ​ສໍາ​ລັບ​ການ pixels ລວງ​ທັງ​ຫມົດ. ຜົນ​ກະ​ທົບ​ອັນ​ນີ້​ແມ່ນ​ເຫມາະ​ສົມ​ສໍາ​ລັບ​ການ​ມະ​ລາຍ​ຫາຍ​ໄປ​ນອກ​ປ່ອງ​ຢ້ຽມ​ແລະ​ຫຼັງ​ຈາກ​ນັ້ນ​ຄ່ອຍໆ​ຫຼຸດ​ລົງ​ແລະ​ເພີ່ມ​ມູນ​ຄ່າ​ການ​ບໍ່​ມີ​ເພດ​;.

PERPIXEL_TRANSLUCENT: ຊັບ​ສິນ​ນີ້​ສະ​ຫນັບ​ສະ​ຫນູນ​ຄຸນ​ຄ່າ​ຂອງ​ອັກ​ສອນ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ພາຍ​ໃນ window ຕົວ​ມັນ​ເອງ. ນີ້​ແມ່ນ​ນໍາ​ໃຊ້​ເຂົ້າ​ໃນ​ມະ​ລາຍ​ຫາຍ​ໄປ​ໃນ​ຂົງ​ເຂດ​ຄັດ​ຈ້ອນ​ມາ​ຈາກ​ປ່ອງ​ຢ້ຽມ.

PERPIXEL_TRANSPARENT: ຊັບ​ສິນ​ນີ້​ສະ​ຫນັບ​ສະ​ຫນູນ​ຮູບ​ຮ່າງ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ຂອງ​ປ່ອງ​ຢ້ຽມ​ຫຼາຍ​ກວ່າ​ຮູບ​ສີ່​ແຈ​ສາກ​ພື້ນ​ເມືອງ. ຖ້າ​ຫາກ​ວ່າ​ຄວາມ​ໂປ່ງ​ໃສ​ຕໍ່ pixels ລວງ​ແມ່ນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຈາກ​ນັ້ນ​ຮູບ​ຮ່າງ​ແຕກ​ຕ່າງ​ກັນ​ເຊັ່ນ​ແຜ່ນ​ປ້າຍ​ວົງ​ກົມ, ສາມ​ຫຼ່ຽມ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ສ້າງ​ຕັ້ງ.

ກ່ອນ​ທີ່​ພວກ​ເຮົາ​ນໍາ​ໃຊ້​ຊັບ​ສິນ​ໃດ​ຫນຶ່ງ​ຂ້າງ​ເທິງ​ນັ້ນ​ພວກ​ເຮົາ​ຈໍາ​ເປັນ​ຕ້ອງ​ທົດ​ສອບ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຂອງ​ພາຍ​ໃຕ້​ລະ​ບົບ​ປະ​ຕິ​ບັດ​ການ​ເວົ້າ​ຕົວະ. ການ​ທົດ​ສອບ​ສາ​ມາດ​ເຮັດ​ໄດ້​ໂດຍ​ການ​ນໍາ​ໃຊ້​ວິ​ທີ​ການ​ຂອງ isWindowTranslucencySupported ກັບ​ຫ້ອງ​ຮຽນ java.awt.GraphicsDevice. ຕ້ອງ​ໃຊ້​ເວ​ລາ​ປະ​ເພດ​ຄວາມ​ໂປ່ງ​ໃສ​ເປັນ​ປັດ​ໄຈ​ຫນຶ່ງ​ແລະ​ຈະ​ກັບ​ຄືນ​ມາ​ເປັນ​ຄວາມ​ຈິງ / ທີ່​ບໍ່​ຖືກ​ຕ້ອງ​ເພື່ອ​ບົ່ງ​ບອກ​ສະ​ຫນັບ​ສະ​ຫນູນ.

ຂໍ​ໃຫ້​ເຮົາ​ຈົ່ງ​ກວດ​ເບິ່ງ​ລະ​ຫັດ​ຕົວ​ຢ່າງ​ໃນ​ການ​ປະ​ຕິ​ບັດ​ຄຸນ​ນະ​ສົມ​ບັດ​ຂອງ translucent. ຢູ່​ໃນ​ຕົວ​ຢ່າງ​ນີ້​ພວກ​ເຮົາ​ໄດ້​ສ້າງ​ຕັ້ງ​ປ່ອງ​ຢ້ຽມ translucent ມຸມ​ສາກ​ສຸດ​ທີ່​ບົດ​ຄວາມ. ຫນ້າ​ທໍາ​ອິດ​ພວກ​ເຮົາ​ໄດ້​ເປັນ​ຄົນ​ພິ​ການ​ຕົບ​ແຕ່ງ​ຮູບ​ແບບ​ການ​ເພື່ອ​ໃຫ້​ໄດ້​ຮັບ​ຜົນ​ສະ​ທ້ອນ​ຂອງ​ຄວາມ​ໂປ່ງ​ໃສ​ໄດ້. ຫຼັງ​ຈາກ​ນັ້ນ​, ພວກ​ເຮົາ​ໄດ້​ກວດ​ກາ​ເບິ່ງ​ຖ້າ​ຫາກ​ວ່າ​ລະ​ບົບ​ການ​ປະ​ຕິ​ບັດ​ການ​ທີ່​ຕິດ​ພັນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ມັນ​ຫຼື​ບໍ່. ຖ້າ​ຫາກ​ວ່າ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຜົນ​ກະ​ທົບ​ແມ່ນ​ສັງ​ເກດ​ພາ window ໄດ້.

Listing1: ຕົວ​ຢ່າງ​ສະ​ແດງ​ໃຫ້​ເຫັນ translucent ຂອງ​ປ່ອງ​ຢ້ຽມ 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() {

Super(“ຂອບ​ມຸມ​ສາກ translucent”);

//ສ້າງ​ຮູບ​ລັກ

setLayout(ໃຫມ່ GridBagLayout());

//ສ້າງ​ພື້ນ​ທີ່​ບົດ​ຄວາມ

ສຸດ​ທ້າຍ = JTextArea txtArea ໃຫມ່ JTextArea(5, 50);

txtArea.setBackground(ສີ.CYAN);

ຕື່ມ​ການ(txtArea);

//ໂທ​ຫາ​ທີ່​ຈະ​ປິດ​ການ​ຕົບ​ແຕ່ງ

setUndecorated(ຄວາມ​ຈິງ);

 

//ໂທ​ຫາ setShape ກັບ resize ຮູບ​ຮ່າງ​ໃນ​ເວ​ລາ widnow ແມ່ນ resized

addComponentListener(ໃຫມ່ ComponentAdapter() {

@ ລົບ​ລ້າງ​ການ

ສາ​ທາ​ລະ​ນະ void componentResized(ComponentEvent ແລະ) {

setShape(ໃຫມ່ Rectangle2D.Double(0, 0, getWidth(), getHeight()));

}

});

//ເຮັດ​ໃຫ້​ວິນ​ໂດ​ໄດ້ 85% ໂປ່ງ​ໃສ

setOpacity(0.85f);

//ກໍາ​ນົດ​ຕົວ​ກໍາ​ນົດ​ການ​ອື່ນໆ

setLocationRelativeTo(ສູນ);

setSize(200, 300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(ຄວາມ​ຈິງ);

}

ສາ​ທາ​ລະ​ນະ static void ຕົ້ນ​ຕໍ(ຊ່ອຍ​ແນ່[] args) {

//ສ້າງ​ສະ​ພາບ​ແວດ​ລ້ອມ​ຮູບ​ພາບ

ຊາວ​ຫນຸ່ມ​ບໍ​ລິ​ສັດ GraphicsEnvironment GraphicsEnvironment =

.getLocalGraphicsEnvironment();

//ກວດ​ເບິ່ງ​ຖ້າ OS ສະ​ຫນັບ​ສະ​ຫນູນ translucent

ຖ້າຫາກວ່າ (genv.getDefaultScreenDevice().isWindowTranslucencySupported(

GraphicsDevice.WindowTranslucency.translucent)) {

System.out.println(“OS ສະ​ຫນັບ​ສະ​ຫນູນ translucent”);

ໃຫມ່ TransRecFrame();

}

}

}

ຄຸນ​ນະ​ສົມ​ບັດ​ທີ່​ຈະ​ສະ​ຫນັບ​ສະ​ຫນູນ translucent ແລະ​ຮູບ​ຮ່າງ: ໃນ Java7 ສ່ວນ​ໃຫຍ່​ແມ່ນ​ມີ​ສາມ​ລັກ​ສະ​ນະ​ທີ່​ມີ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ translucent ແລະ​ຮູບ​ຮ່າງ​ຂອງ​ປ່ອງ​ຢ້ຽມ​ແມ່ນ.

  • translucent window ເຕັມ: ໃນ​ວິ​ທີ​ການ​ນີ້​ປ່ອງ​ຢ້ຽມ​ເຕັມ​ແມ່ນ translucent.
  • ຕໍ່ translucent pixels ລວງ: ໃນ​ວິ​ທີ​ການ​ແບບ​ນີ້​ສ່ວນ​ຂອງ​ປ່ອງ​ຢ້ຽມ​ດັ່ງ​ກ່າວ​ແມ່ນ translucent
  • ປ່ອງ​ຢ້ຽມ​ຮູບ: ເຮັດ​ໃຫ້​ວິນ​ໂດ​ເປັນ​ຮູບ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ເຊັ່ນ​ເປັນ​ຮູບ​ວົງ, ແຜ່ນ​ປ້າຍ​ວົງ​ກົມ, ແລະ​ອື່ນໆ​ມຸມ​ສາກ.

ຕໍ່ translucent pixels ລວງ:

ພວກ​ເຮົາ​ໄດ້​ເຫັນ​ມາ​ແລ້ວ​ເຮັດ​ແນວ​ໃດ​ເພື່ອ​ເຮັດ​ໃຫ້ translucent window ໄດ້​ສໍາ​ເລັດ​ສົມ​ບູນ​ໃນ​ຕົວ​ຢ່າງ​ທີ່​ຜ່ານ​ມາ. ໃນ​ປັດ​ຈຸ​ບັນ​ພວກ​ເຮົາ​ຈະ​ປຶກ​ສາ​ຫາ​ລື​ສ່ວນ​ທີ​ສອງ​ຂອງ​ການ​ເຮັດ​ທີ່​ກໍາ​ນົດ​ໄວ້​ຂອງ pixels ລວງ translucent ໂດຍ​ໃຊ້​ພື້ນ​ເປັນ​ສີ​ຂອງ​ເຂົາ​ເຈົ້າ. ມີ​ຂໍ້​ຈໍາ​ກັດ​ບາງ​ຄົນ​ໄປ​ປະ​ຕິ​ບັດ​ກໍ​ລະ​ນີ​ນີ້​ແມ່ນ. ປ່ອງ​ຢ້ຽມ​ບໍ່​ຄວນ​ຈະ​ມີ​ຫນ້າ​ຈໍ​ເຕັມ​ທີ່​ແລະ​ລະ​ບົບ​ການ​ຕ້ອງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ລະ​ດັບ translucent pixels ລວງ. ສ່ວນ​ທີ່​ເຫຼືອ​ຂອງ​ລະ​ບຽບ​ການ​ດັ່ງ​ກ່າວ​ແມ່ນ​ຄ້າຍ​ຄື​ກັນ​ກັບ​ຍົກ​ຕົວ​ຢ່າງ​ຂ້າງ​ເທິງ​ນີ້.

ຢູ່​ໃນ​ຕົວ​ຢ່າງ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ພວກ​ເຮົາ​ຈະ​ເບິ່ງ​ວິ​ທີ​ການ translucent ລະ​ດັບ pixels ລວງ​ຖືກ​ຕັ້ງ​ໃນ​ກອບ.

Listing2: pixels ລວງ​ລະ​ດັບ​ຕົວ​ຢ່າງ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ສະ​ຫນັບ​ສະ​ຫນູນ translucent.

ການ​ນໍາ​ເຂົ້າ javax.swing.*;

ການ​ນໍາ​ເຂົ້າ java.awt *​.;

ການ​ນໍາ​ເຂົ້າ java.awt.event.ActionEvent;

ການ​ນໍາ​ເຂົ້າ java.awt.event.ActionListener;

ສາ​ທາ​ລະ​ນະ ທີ່ຫ້ອງຮຽນ PixelTranslucency ຂະ​ຫຍາຍ JFrame {

ສາ​ທາ​ລະ​ນະ PixelTranslucency() {

Super(“ກໍາ​ນົດ​ລະ​ດັບ translucent pixels ລວງ”);

//ກໍາ​ນົດ​ຂະ​ຫນາດ​ຂອງ JFrame ໄດ້

setSize(250, 250);

//ກໍາ​ນົດ​ວາງ​ອອກ

getContentPane().setLayout(ໃຫມ່ GridLayout(6, 6));

//ໂທ​ຫາ​ສໍາ​ລັບ​ຕັ້ງ pixels ລວງ

ສໍາ​ລັບ(int i = 0; ຂ້າ​ພະ​ເຈົ້າ < 16; i ){

ຕື່ມ​ການ(ໃຫມ່ ກະ​ດານ pixels ລວງ(255 – ຂ້າ​ພະ​ເຈົ້າ * 12));

}

//ສ້າງ​ພື້ນ​ຖານ​ແລະ​ຄຸນ​ສົມ​ບັດ​ອື່ນໆ

setBackground(ໃຫມ່ ສີ(0, 0, 0, 0));

setLocationRelativeTo(ສູນ);

setVisible(ຄວາມ​ຈິງ);

}

ສາ​ທາ​ລະ​ນະ static void ຕົ້ນ​ຕໍ(ຊ່ອຍ​ແນ່[] args) {

ຊາວ​ຫນຸ່ມ​ບໍ​ລິ​ສັດ GraphicsEnvironment GraphicsEnvironment =.getLocalGraphicsEnvironment();

//ເບິ່ງ​ວ່າ​ປ່ອງ​ຢ້ຽມ​ສະ​ຫນັບ​ສະ​ຫນູນ translucent

ຖ້າຫາກວ່າ (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSLUCENT)) {

ລະ​ບົບ.ອອກ.println(“OS ສະ​ຫນັບ​ສະ​ຫນູນ translucent”);

ໃຫມ່ PixelTranslucency();

}

} ພາກ​ເອ​ກະ​ຊົນ ທີ່ຫ້ອງຮຽນ ກະ​ດານ pixels ລວງ ຂະ​ຫຍາຍ JPanel {

ພາກ​ເອ​ກະ​ຊົນ ກະ​ດານ pixels ລວງ(int pixl) {

Super();

setBackground(ໃຫມ່ ສີ(0, 0, 255, pixl));

}

}

}

Windows ຮູບ:

ໃນ​ປັດ​ຈຸ​ບັນ​ພວກ​ເຮົາ​ຈະ​ປຶກ​ສາ​ຫາ​ລື​ກ່ຽວ​ກັບ​ຄຸນ​ນະ​ສົມ​ບັດ​ທີ່​ສໍາ​ຄັນ​ອີກ​ສະ​ຫນັບ​ສະ​ຫນູນ​ໂດຍ​ປ່ອງ​ຢ້ຽມ​ຮູບ Java7.The ສະ​ຫນັບ​ສະ​ຫນູນ​ທຸກ​ປະ​ເພດ​ຂອງ​ຮູບ​ໃດ​ກໍ​ຕາມ​ຈະ​ຮຽກ​ຮ້ອງ​ຕ້ອງ​ການ​ຂອງ​ຜູ້​ໃຊ້​ໄດ້. ຄຸນ​ນະ​ສົມ​ບັດ​ນີ້​ຈະ​ຊ່ວຍ​ທ່ານ​ໃນ​ການ​ສ້າງ​ຮູບ​ຮ່າງ​ຄ້າຍ​ຄື​ຮູບ​ວົງ​ມົນ​ໃດ, ສາມ​ຫຼ່ຽມ, polygon ຫຼື​ຮູບ​ຮ່າງ​ສະ​ລັບ​ສັບ​ຊ້ອນ​ທີ່​ເປັນ​ໄປ​ໄດ້. ວິ​ທີ setShape ຫ້ອງ​ປ່ອງ​ຢ້ຽມ​ສໍາ​ລັບ​ການ​ສ້າງ​ຕັ້ງ​ຊັບ​ສິນ. ອີກ​ເທື່ອ​ຫນຶ່ງ​ແຕ່​ວ່າ​ພວກ​ເຮົາ​ຕ້ອງ​ຈື່​ໄວ້​ວ່າ​ຮູບ​ແບບ​ເຕັມ​ຈໍ​ບໍ່​ຄວນ​ຈະ​ຖືກ​ອະ​ນຸ​ຍາດ​ແລະ​ລະ​ບົບ​ປະ​ຕິ​ບັດ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ translucent.

ຕົວ​ຢ່າງ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​ສະ​ແດງ​ໃຫ້​ເຫັນ​ການ​ນໍາ​ໃຊ້​ຂອງ​ປ່ອງ​ຢ້ຽມ​ຂອງ​ຮູບ.

Listing3: ລະ​ຫັດ​ຕົວ​ຢ່າງ​ທີ່​ສະ​ແດງ​ໃຫ້​ເຫັນ​ການ​ນໍາ​ໃຊ້​ຂອງ​ປ່ອງ​ຢ້ຽມ​ຂອງ​ຮູບ.

ການ​ນໍາ​ເຂົ້າ javax.swing.*;

ການ​ນໍາ​ເຂົ້າ java.awt *​.;

ການ​ນໍາ​ເຂົ້າ java.awt.geom.Ellipse2D;

ການ​ນໍາ​ເຂົ້າ java.awt.geom.GeneralPath;

ສາ​ທາ​ລະ​ນະ ທີ່ຫ້ອງຮຽນ JavaShapedWindow ຂະ​ຫຍາຍ JFrame {

ສາ​ທາ​ລະ​ນະ JavaShapedWindow() {

Super(“ຕັ້ງ​ວິນ​ໂດ​ເປັນ​ຮູບ”);

//ຕັ້ງ undecorated ໄປ​ເພື່ອ​ໃຫ້​ໄດ້​ຮັບ​ຜົນ​ກະ​ທົບ​ເປັນ

setUndecorated(ຄວາມ​ຈິງ);

//ກໍາ​ນົດ​ຂະ​ຫນາດ

setSize(ໃຫມ່ ມິ​ຕິ(250, 250));

//ກໍາ​ນົດ​ຄຸນ​ສົມ​ບັດ polygon

= polygon Polygon ໃຫມ່ Polygon();

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(polygon, ຄວາມ​ຈິງ);

gpath.append(newCircle, ຄວາມ​ຈິງ);

//ກໍາ​ນົດ​ເສັ້ນ​ທາງ

setShape(gpath);

//ສ້າງ​ຮູບ​ລັກ​ຫມາຍ​ໃສ່​ໃນ​ປ່ອງ

getContentPane().setLayout(ໃຫມ່ BoxLayout(getContentPane(), BoxLayout.X_AXIS));

ຕື່ມ​ການ(ຕູ້.createHorizo​​ntalGlue());

//ສ້າງ​ຄຸນ​ສົມ​ບັດ​ປ້າຍ​ແລະ​ກໍາ​ນົດ​ໄວ້

JLabel newlabel = ໃຫມ່ JLabel(“Java ປ່ອງ​ຢ້ຽມ​ຮູບ​ຮ່າງ”);

newlabel.setForeground(ສີ.ສີ​ຂາວ);

ຕື່ມ​ການ(newlabel);

ຕື່ມ​ການ(ຕູ້.createHorizo​​ntalGlue());

//ກໍາ​ນົດ​ເນື້ອ​ໃນ​ພື້ນ​ເປັນ​ສີ pane

getContentPane().setBackground(ສີ.cyan);

//ກໍາ​ນົດ​ສະ​ຖານ​ທີ່

setLocationRelativeTo(ສູນ);

setVisible(ຄວາມ​ຈິງ);

}

ສາ​ທາ​ລະ​ນະ static void ຕົ້ນ​ຕໍ(ຊ່ອຍ​ແນ່[] args) {

ຊາວ​ຫນຸ່ມ​ບໍ​ລິ​ສັດ GraphicsEnvironment GraphicsEnvironment =.getLocalGraphicsEnvironment();

//ກວດ​ສອບ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ​ການ OS ຊັບ​ສິນ​ນີ້

ຖ້າຫາກວ່າ (genv.getDefaultScreenDevice().isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT)) {

ລະ​ບົບ.ອອກ.println(“OS ສະ​ຫນັບ​ສະ​ຫນູນ translucent”);

ໃຫມ່ JavaShapedWindow();

}

}

}

ພວກ​ເຮົາ​ຍັງ​ສາ​ມາດ​ປະ​ຕິ​ບັດ​ການ​ປະ​ສົມ​ປະ​ສານ​ຂອງ​ສອງ​ລັກ​ສະ​ນະ​ຄ້າຍ​ຄື​ປ່ອງ​ຢ້ຽມ translucent ແລະ​ຮູບ. ເພື່ອ​ປະ​ຕິ​ບັດ​ຕາມ​ນີ້, ວິ​ທີ​ການ​ໂທ​ຫາ setOpacity ກັບ​ພາ​ຂອງ​ທ່ານ. ປ່ອງ​ຢ້ຽມ​ຜົນ​ໄດ້​ຮັບ​ຈະ​ສະ​ແດງ​ຜົນ​ແບບ​ປະ​ສົມ​ປະ. ແຕ່​ພວກ​ເຮົາ​ຄວນ​ຈື່​ລະ​ບົບ​ປະ​ຕິ​ບັດ​ການ​ທີ່​ຕິດ​ພັນ​ຕ້ອງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ລະ​ດັບ translucent pixels ລວງ​ແລະ​ຄວາມ​ໂປ່ງ​ໃສ​ໃນ​ລະ​ດັບ pixels ລວງ.

ສະ​ຫຼຸບ:

ໃນ​ບົດ​ຄວາມ​ນີ້​ພວກ​ເຮົາ​ໄດ້​ກວມ​ເອົາ​ຄຸນ​ນະ​ສົມ​ບັດ​ໃຫມ່​ໃນ​ບາງ translucent java7.The ແລະ​ລັກ​ສະ​ນະ​ເປັນ​ຮູບ​ປ່ອງ​ຢ້ຽມ​ເປັນ​ຫນ້າ​ສົນ​ໃຈ​ແທ້​ແລະ​ເຮັດ​ໃຫ້​ອົງ​ປະ​ກອບ​ຂອງ​ເກາະ​ຊາ​ວາ UI ປ່ຽນ​ແປງ​ໄດ້​ເພີ່ມ​ເຕີມ. ແຕ່​ໃນ​ເວ​ລາ​ດຽວ​ກັນ​ພວກ​ເຮົາ​ຕ້ອງ​ຈື່​ໄວ້​ວ່າ​ລະ​ບົບ​ການ​ປະ​ຕິ​ບັດ​ການ​ທີ່​ຕິດ​ພັນ​ຄວນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຄຸນ​ສົມ​ບັດ​ທັງ​ຫມົດ​ເຫຼົ່າ​ນີ້. ຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​ຜົນ​ກະ​ທົບ​ທີ່​ຈະ​ບໍ່​ສັງ​ເກດ. ດັ່ງ​ນັ້ນ​ໃນ​ການ​ນໍາ​ໃຊ້​ຕົວ​ມັນ​ເອງ​ພວກ​ເຮົາ​ກວດ​ເບິ່ງ​ໄດ້​ສະ​ຫນັບ​ສະ​ຫນູນ OS ແລະ​ຫຼັງ​ຈາກ​ນັ້ນ​ປະ​ຕິ​ບັດ​ຜົນ​ກະ​ທົບ​ຂອງ. ຂອງ​ຄຸນ​ນະ​ສົມ​ບັດ​ຫລ້າ​ສຸດ​ຂອງ​ເກາະ​ຊາ​ວາ​ເຮັດ​ໃຫ້​ການ​ພັດ​ທະ​ນາ​ເພື່ອ​ສ້າງ​ປະ​ເພດ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ຂອງ​ຜົນ​ກະ​ທົບ​ທີ່​ຢູ່​ເບື້ອງ UI. ດັ່ງ​ທີ່​ພວກ​ເຮົາ​ທຸກ​ຄົນ​ຮູ້​ວ່າ​ເບິ່ງ​ແລະ​ຮູ້​ສຶກ​ວ່າ​ເປັນ​ລັກ​ສະ​ນະ​ສໍາ​ຄັນ​ຂອງ​ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ທີ່​ໃດ UI. ສະ​ນັ້ນ​ການ​ພັດ​ທະ​ນາ​ເຄື່ອງ​ພ້ອມ​ໃນ​ປັດ​ຈຸ​ບັນ​ທີ່​ມີ​ເຄື່ອງ​ມື​ເພື່ອ​ເຮັດ​ໃຫ້ UI ຫຼາຍ​ສຸກ​ແລະ​ເປັນ​ທີ່​ດຶງ​ດູດ.

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share