2010-02-27 49 views
15

Làm cách nào để tạo một màn hình toàn màn hình JComponent (bảng điều khiển, khung, cửa sổ, v.v.) để nó cũng chồng lên mọi thứ trên màn hình bao gồm cả thanh bắt đầu của cửa sổ?Tạo chế độ toàn màn hình bảng điều khiển Java

Tôi không muốn thay đổi độ phân giải hoặc bất kỳ thứ gì với thiết bị đồ họa như bitdepth, v.v., tôi chỉ muốn chồng lên mọi thứ khác.

+1

Có gì sai với câu trả lời cho đến thời điểm này? – Thomas

+0

Vâng, nghiêm túc. Đưa nó cho Adamski - bạn sẽ không nhận được câu trả lời hay hơn. –

+0

Ý tôi là, miễn là bạn không đưa ra một đầu mối về những gì bạn không thích về câu trả lời hiện tại, không ai có thể (hoặc sẵn sàng) để tìm ra thứ gì đó khác. – Thomas

Trả lời

11

Bạn có thể thử một số các codes in this page, cho phép một container để lấp đầy màn hình (vì vậy nó không phải là một giải pháp cho một cá nhân phần , nhưng đối với một tập hợp các thành phần trong một container như một JFrame)

public class MainWindow extends JFrame 
{ 
    public MainWindow() 
    { 
    super("Fullscreen"); 
    getContentPane().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize()); 
    pack(); 
    setResizable(false); 
    show(); 

    SwingUtilities.invokeLater(new Runnable() { 
     public void run() 
     { 
     Point p = new Point(0, 0); 
     SwingUtilities.convertPointToScreen(p, getContentPane()); 
     Point l = getLocation(); 
     l.x -= p.x; 
     l.y -= p.y; 
     setLocation(l); 
     } 
    }); 
    } 
    ... 
} 
+0

Bạn có thể giải thích tại sao điều này có hiệu quả không. Cụ thể là phần trong runnable, chẳng hạn như các dòng sau 'l.x - = p.x;'. Nó hoạt động, nhưng tôi cũng hoàn toàn hiểu nó. – Connorelsea

+0

@ Connorelsea Nó có thể dễ dàng hơn để hỏi rằng trong một câu hỏi riêng biệt: sau 5 + năm, và không nhớ tất cả các chi tiết. – VonC

17

Khám phá this tutorial mô tả API chế độ toàn màn hình của Java.

Mã ví dụ (được lấy từ hướng dẫn). Lưu ý rằng mã hoạt động trên Window do đó bạn cần phải nhúng JPanel của mình với một số Window (ví dụ: JFrame) để thực hiện việc này.

GraphicsDevice myDevice; 
Window myWindow; 

try { 
    myDevice.setFullScreenWindow(myWindow); 
    ... 
} finally { 
    myDevice.setFullScreenWindow(null); 
} 
1

Tôi cần tìm kiếm rất nhiều, để thực hiện tương tự. Dưới đây là một phiên bản làm việc hoàn toàn của nó bằng các bước, để tôi có thể tìm thấy nó sau này cũng có, và sử dụng nó.

Bước 1: tạo ra một tập tin gọi là fullscreen.java

Bước 2: copy đoạn mã này và dán nó vì nó là:

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class fullscreen extends Window 
{ 
    private Button button; 

    public fullscreen() 
    { 
    super(new Frame()); 
    button = new Button("Close"); 
    button.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
     System.exit(0); 
     } 
    }); 

    setLayout(new FlowLayout()); 
    add(button); 

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    setBounds(0,0,screenSize.width, screenSize.height); 
    } 

    public static void main(String[] args) 
    { 
    // This will take over your whole screen tested and works in my: 
    // Fedora 12/13/14 
    // CentOS 5.0 
    // if this works for you, in other platforms, please leave a comments which OS it worked. 
    // happy coding! 
    new fullscreen().setVisible(true); 
    } 

} 

Bước 3: biên dịch mã và chạy

Làm xong.

0

Nếu tôi là bạn, tôi sẽ cố gắng làm cho Java không vẽ đường viền của khung hình Jframe, sau đó làm cho nó mất tất cả màn hình.

import java.awt.GraphicsEnvironment; 
import java.awt.Rectangle; 

import javax.swing.JFrame; 


public class FenNoBorder extends JFrame { 

    public FenNoBorder() { 
     setUndecorated(true); 
     setVisible(true); 
     GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds(); 
     setBounds(maximumWindowBounds); 
    } 
} 
Các vấn đề liên quan