Giấu Title của JInternalFrame


Làm thế nào để tạo ra một JInternalFrame để nó trông giống như JWindow. Có nghĩa là làm cho JInternalFrame không phải là Frame nữa. Cách giải quyết để cho một JInternalFrame không phải là một Frame nữa đơn giản chỉ cần xóa bỏ thanh tiêu đề của JInternaFrame…

Làm thế nào để tạo ra một JInternalFrame để nó trông giống như JWindow. Có nghĩa là làm cho JInternalFrame không phải là Frame nữa.

Cách giải quyết để cho một JInternalFrame không phải là một Frame nữa đơn giản chỉ cần xóa bỏ thanh tiêu đề của JInternaFrame đi là được. Muốn làm được điều này, chúng ta xem xét đến mã nguồn của lớp BasicInternalFrameUI, chúng ta biết rằng thực ra thanh tiêu đề trên JInternalFrame chẳng qua là một ô cửa (pane) nằm ở vị trí North trên BasicInternalFrameTitlePane. Thiết lập lại cho North pane này có giá trị là null cũng có nghĩa chúng ta đã xóa bỏ được thanh tiêu đề ra khỏi JInternalFrame

Chương trình sau đây chỉ ra cách làm cụ thể để xóa thanh title của JInternalFrame

  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. import java.awt.*;
  4. public class Frame_Without_Titlebar
  5. extends JFrame {
  6. public Frame_Without_Titlebar() {
  7. super(“InternalFrame Without TitleBar”);
  8. JInternalFrame frame = new JInternalFrame();
  9. // Get the titlebar and set it to null
  10. setRootPaneCheckingEnabled(false);
  11. javax.swing.plaf.InternalFrameUI ui
  12. = frame.getUI();
  13. ((javax.swing.plaf.basic.BasicInternalFrameUI)ui).setNorthPane(null);
  14. frame.setBounds(30,30,200,200);
  15. frame.setVisible(true);
  16. JDesktopPane desktop = new JDesktopPane();
  17. desktop.add(frame);
  18. setContentPane(desktop);
  19. }
  20. public static void main(String[] args)
  21. {
  22. Frame_Without_Titlebar frame = new
  23. Frame_Without_Titlebar();
  24. frame.setBounds(30,30,300,300);
  25. frame.setVisible(true);
  26. }
  27. }

import javax.swing.*; import java.awt.event.*; import java.awt.*; public class Frame_Without_Titlebar extends JFrame { public Frame_Without_Titlebar() { super(“InternalFrame Without TitleBar”); JInternalFrame frame = new JInternalFrame(); // Get the titlebar and set it to null setRootPaneCheckingEnabled(false); javax.swing.plaf.InternalFrameUI ui = frame.getUI(); ((javax.swing.plaf.basic.BasicInternalFrameUI)ui).setNorthPane(null);   frame.setBounds(30,30,200,200); frame.setVisible(true); JDesktopPane desktop = new JDesktopPane(); desktop.add(frame); setContentPane(desktop); } public static void main(String[] args) { Frame_Without_Titlebar frame = new Frame_Without_Titlebar(); frame.setBounds(30,30,300,300); frame.setVisible(true); } }

[HaiPhong-Aptech]

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s