Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to import javax.swing.JFrame

I've been looking all over the internet and Can't find an answer.

I'm using Eclipse and need to import JFrame from javax.swing. But hovering over the the declaration (which in Eclipse should give you an option to import it) the import option does not show up. Instead I manually typed out the import path, but get an error.

Going even further, I used the package explorer to attempt to fine it... couldn't. I have the latest version of Eclipse, and the Latest JRE and JDK. But still is not working.

Code:

package com.BickDev.Game;

import java.awt.Canvas;
import java.awt.Dimension;

import javax.swing.JFrame;

public class Game extends Canvas implements Runnable {
    private static final long serialVersionUID = 1L;

    public static final int WIDTH = 320;
    public static final int HEIGHT = WIDTH / 12 * 9;
    public static final int SCALE = 2;
    public final String TITLE = "Troy's Game Test";
    private boolean running = false;


    public void run() {

    }

    public static void main(String args[]) {

        Game game = new Game();
        Dimension size = new Dimension(WIDTH * SCALE, HEIGHT * SCALE);
        game.setPreferredSize(size);
        game.setMaximumSize(size);
        game.setMinimumSize(size);

        JFrame frame = new JFrame(game.TITLE);
    }
}

the import javax.swing.JFrame now gives the error

Access restriction: The type JFrame is not accessible due to restriction on required library C:\ProgramFiles\Java\jre8\lib\rt.jar

No idea what this means...

Please help....

*UPDATE found the JFrame class.. but cannot access it.

like image 509
UNEVERIS Avatar asked Apr 22 '14 02:04

UNEVERIS


People also ask

What is import javax.swing JFrame?

swing. JFrame class is a type of container which inherits the java. awt. Frame class. JFrame works like the main window where components like labels, buttons, textfields are added to create a GUI.

Is javax.swing outdated?

Java Swing is said to be an old, deprecated technology to design desktop apps. However, there are easy ways to change this: add GUI testing, upgrade to a modern look and let the app be used from a browser.


2 Answers

Just add requires java.desktop; to your module-info.java file.

module-info.java:

module your_project_name{
    requires java.desktop;
}
like image 132
Abdalla Roda Avatar answered Sep 29 '22 04:09

Abdalla Roda


When you make a new java project at JRE choose "Use an execution environment JRE and from there select JavaSE-1.7 or 1.8 and just should solve the problem. I had the same problem like you before.

like image 25
user3623053 Avatar answered Sep 29 '22 04:09

user3623053