Как устранить ошибку AWTUtilities в проекте Maven GUI?

Я пишу графическую программу на Java, мой вид проекта maven. Я хочу использовать AWTUtilities библиотека для создания JFrame с закругленными углами, но когда я пытаюсь запустить проект, я принимаю следующие ошибки:

  1. Ошибка:(3, 19) java: пакет com.sun.awt не существует.
  2. Ошибка:(35, 9) Java: не удается найти символ символа: переменная AWTUtilities расположение: класс Test.

Фрагмент кода:

import com.sun.awt.AWTUtilities;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.geom.Area;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;

public class Test extends JFrame{
    private static Robot robot;

    public static void main(String[] args) {
        try {
            robot = new Robot();
        } catch (AWTException e1) {
            e1.printStackTrace();
        }

        JFrame win = new JFrame();
        win.setSize(700, 100);
        JPanel panel = new JPanel();
        JButton button = new JButton("simulate");
        final JTextField textField = new JTextField();
        textField.setPreferredSize(new Dimension(600, 30));
        panel.add(textField);
        panel.add(button);
        win.add(panel);

        Shape shape = new Rectangle2D.Double(0, 0, win.getWidth(), win.getHeight());
        AWTUtilities.setWindowShape(win, shape);

        win.setVisible(true);
    }
}

Как я могу решить это?

2 ответа

Решение

Код, который вы написали, работает только в Java 6 и при определенных условиях. Если вы используете Java 8 и хотите создать фрейм с закругленными углами, попробуйте что-то вроде этого:

JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setBackground(new Color(0, 0, 0, 180));
frame.setShape(new RoundRectangle2D.Double(0, 0, 500, 600, 80, 80));

Спасибо, друзья, за помощь, вы мне очень помогли, Hovercraft Full Of Eels и navy1978!

Вот фрагмент кода, который очень хорошо работает для меня:

this.myFrame.setShape(new RoundRectangle2D.Double(0,0, this.myFrame.getWidth(),this.myFrame.getHeight(), 20, 20));
Другие вопросы по тегам