2010-01-06 31 views

Trả lời

42

Gọi setUndecorated(true) trên số JFrame của bạn.

Phương thức này chỉ có thể được gọi trong khi khung không thể hiển thị (xem JavaDoc).

enter image description here

+0

Ok.I sẽ đặt câu trả lời là một answeri fi được chấp nhận để giải quyết vấn đề của tôi.Cảm ơn! –

+1

@Peter: Làm cách nào để tạo khung hình không hiển thị? Tôi đã tạo JFrame và thêm một số điều khiển vào nó bằng cách sử dụng Netbeans. Trong chức năng chính tôi mã: MyJframe form = new MyJframe(); form.setUndecorated (true); form.setVisible (true); Nhưng nó ném ngoại lệ –

+0

@Chan - Gói gọi hàm dựng MyJFrame()? Điều đó sẽ làm cho JFrame có thể hiển thị – willcodejavaforfood

1

Bạn có thể lớp java.awt.Window. A Window giống như một JFrame, nhưng không có viền.

Lưu ý rằng hàm tạo Window lớp cần một số Frame (java.awt.Frame) làm đối số, nhưng bạn có thể đặt thành null. Bạn cũng có thể mở rộng các lớp Window để tùy chỉnh nó như thế này:

public class MyWindow extends Window{ 
    public MyWindow(){ 
     super(null); // creates a window with no Frame as owner 
     setBounds(x, y, width, height); 
     setVisible(true); 
    } 
} 

Trong main, bạn có thể tạo một thể hiện của MyWindow thay vì Window.

public static void main (String[] args) { 
    Window window = new MyWindow(); 
    // Other stuff in main 
} 

Tôi hy vọng điều này sẽ hữu ích!

+0

Lưu ý 2 điều: 1) Câu hỏi này có thẻ 'swing' được áp dụng. 2) Swing cung cấp một 'JWindow'. Nếu bạn xóa hoặc (tốt nhất là) chỉnh sửa câu trả lời của mình, bạn có thể tránh một số phiếu bầu trên đó. ;) –

+0

Cửa sổ hoặc Jwindow không hỗ trợ một số sự kiện chuột và nó không có kiểm soát thanh tác vụ. –

5

Mã này Giải thích cách bạn có thể đạt được nó.

Lưu ý: setUndecorated (true); câu lệnh trong hàm tạo.

Bạn không thể undecorate Frame khi nó đã được hiển thị.

public class MyFrame extends JFrame { 

private JPanel contentPane; 
private JTextField textField; 

/** 
* Launch the application. 
*/ 
public static void main(String[] args) { 

       MyFrame frame = new MyFrame(); 
       frame.setVisible(true); 

} 
/** 
* Create the frame. 
*/ 
public MyFrame() { 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setBounds(100, 100, 450, 300); 
    contentPane = new JPanel(); 
    contentPane.setBackground(Color.ORANGE); 
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 


    /* important Statement */ 
    setUndecorated(true); 
} 

}

Frame without Border

0

Sử dụng phương pháp frame.getContentPane(); phương thức này trả về bên trong nội dung của khung bất kỳ. Nhưng bạn cần phải đúc nó vào một JPanel. PrintUI sử dụng JPanel không phải JFrame ....

Các vấn đề liên quan