Stránka 1 z 1

Problém s Javou

Napsal: 22 dub 2019 10:17
od hufi2301
Ahoj, potřeboval bych poradit s kódem v Javě, který mi nefunguje. Potřebuju aby když zmáčknu F11 (mám tam šipku nahrou je to jenom test) tak aby se mi dal JFrame přes celou obrazovku. Tady je kód:

Třída Window:

package org.jgdk.gui;

import javax.swing.JFrame;

public class Window {

static JFrame window = new JFrame();

public static boolean isFullscreen = false;

public static void create() {
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
}

public static void setTitle(String title) {
if(title != "") {
window.setTitle(title);
} else {
title = "Window";
window.setTitle(title);
}
}

public static void setDimensions(int width, int height) {
if(isFullscreen == false) {
window.setSize(width, height);
window.setUndecorated(false);
window.setVisible(true);
} else {
System.out.println("The window is in fullscreen mode, so you can't set the dimensions!");
}
}

public static void setFullscreen() {
window.setExtendedState(JFrame.MAXIMIZED_BOTH);
window.setUndecorated(true);
isFullscreen = true;
}

public static void setWindowed() {
window.setExtendedState(JFrame.NORMAL);
window.setUndecorated(false);
isFullscreen = false;
}

public static void setResizable() {
window.setResizable(true);
}

}

Třída KeyEvents:

package org.jgdk.keyboard;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import org.jgdk.gui.Window;

public abstract class KeyEvents implements KeyListener {

@Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key == KeyEvent.VK_UP) {
if(Window.isFullscreen = false) {
Window.setFullscreen();
}
}
}

}


Třída Test:

package org.jgdk.gui;

import org.jgdk.keyboard.KeyEvents;

public class Test {

public static void main(String[] args) {
Window.setTitle("");
Window.setDimensions(800, 600);
Window.create();
}

}

Re: Problém s Javou

Napsal: 22 dub 2019 12:20
od ChrisTaylor
V Javě sice moc neprogramuji, ale následující kód se mi podařilo rozchodit, tak snad jako příklad pomůže:

Třída CustomFrame:

Kód: Vybrat vše

package cz.christaylor.customframe;

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

public class CustomFrame extends JFrame implements KeyListener
{
    private GraphicsDevice graphicsDevice;
    private boolean isFullscreen;

    public CustomFrame()
    {
        graphicsDevice = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        isFullscreen = false;

        addKeyListener(this);
    }

    public void keyTyped(KeyEvent e) { }

    public void keyPressed(KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_UP)
        {
            if (!isFullscreen)
            {
                graphicsDevice.setFullScreenWindow(this);

                isFullscreen = true;
            }
            else
            {
                graphicsDevice.setFullScreenWindow(null);

                isFullscreen = false;
            }
        }
    }

    public void keyReleased(KeyEvent e) { }
}

Třída Main:

Kód: Vybrat vše

package cz.christaylor.customframe;

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

public class Main
{
    public static void main(String[] ars)
    {
        CustomFrame frame = new CustomFrame();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Testovací okno");
        frame.setMinimumSize(new Dimension(720, 480));
        frame.setPreferredSize(new Dimension(720, 480));
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}