JWindow เป็นคอนเทนเนอร์ที่สามารถแสดงได้ทุกที่บนเดสก์ท็อปของผู้ใช้ ไม่มีแถบชื่อเรื่อง , หน้าต่าง การจัดการ ปุ่ม ฯลฯ เช่น JFrame
JWindow มี JRootPane เป็นชั้นเรียนเด็กเพียงคนเดียว บานหน้าต่างเนื้อหา สามารถเป็นผู้ปกครองของลูกๆ ของ JWindow . เหมือน JFrame , JWindow เป็นคอนเทนเนอร์ระดับบนสุดอีกตัวหนึ่งและเป็น JFrame ที่ไม่ได้ตกแต่ง ไม่มีคุณลักษณะเช่น แถบชื่อเรื่อง เมนูหน้าต่าง ฯลฯ A JWindow สามารถใช้เป็น หน้าต่างสแปลช ที่แสดงขึ้นครั้งเดียวเมื่อเปิดแอปพลิเคชันและหายไปโดยอัตโนมัติภายในไม่กี่วินาที
ตัวอย่าง
import javax.swing.*;
import java.awt.*;
public class CreateSplashScreen extends JWindow {
Image splashScreen;
ImageIcon imageIcon;
public CreateSplashScreen() {
splashScreen = Toolkit.getDefaultToolkit().getImage("C:/Users/User/Desktop/Java Answers/logo.jpg");
// Create ImageIcon from Image
imageIcon = new ImageIcon(splashScreen);
// Set JWindow size from image size
setSize(imageIcon.getIconWidth(),imageIcon.getIconHeight());
// Get current screen size
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// Get x coordinate on screen for make JWindow locate at center
int x = (screenSize.width-getSize().width)/2;
// Get y coordinate on screen for make JWindow locate at center
int y = (screenSize.height-getSize().height)/2;
// Set new location for JWindow
setLocation(x,y);
// Make JWindow visible
setVisible(true);
}
// Paint image onto JWindow
public void paint(Graphics g) {
super.paint(g);
g.drawImage(splashScreen, 0, 0, this);
}
public static void main(String[]args) {
CreateSplashScreen splash = new CreateSplashScreen();
try {
// Make JWindow appear for 10 seconds before disappear
Thread.sleep(10000);
splash.dispose();
} catch(Exception e) {
e.printStackTrace();
}
}
} ผลลัพธ์
