Как рисовать различные фигуры в Java? Какую библиотеку мне следует использовать?

Я хочу написать программу, которая может рисовать любую фигуру, которую я ей назначаю, например

  1. Круг
  2. Площадь
  3. Прямоугольник

Какую библиотеку следует использовать и как это сделать в Java?

Я кодер на Python, поэтому мне трудно справиться с Java.


person Hick    schedule 02.01.2011    source источник


Ответы (5)


Конечно, вы можете сделать это с помощью Swing. Вы можете изучить Shapeбиблиотека для этого.

В качестве альтернативы вы можете просто переопределить метод рисования компонента, как показано ниже.

альтернативный текст

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

public class ShapeTest extends JFrame{
     public ShapeTest(){
          setSize(400,400);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setLocationRelativeTo(null);
          setVisible(true);
     }

     public static void main(String a[]){
         new ShapeTest();
     }

     public void paint(Graphics g){
          g.drawOval(40, 40, 60, 60); //FOR CIRCLE
          g.drawRect(80, 30, 200, 200); // FOR SQUARE
          g.drawRect(200, 100, 100, 200); // FOR RECT
     }
}
person bragboy    schedule 02.01.2011
comment
так какой будет лучше? 2d API или библиотека форм? - person Hick; 02.01.2011
comment
библиотека форм (Java2d) является исчерпывающей. если вы просто собираетесь отображать или играть с рисованием в java, то достаточно переопределить метод paint(). если бы вы могли сказать мне свою цель, я могу направить вас .. - person bragboy; 02.01.2011
comment
превосходно . Мне просто нужен ящик, в котором я щелкну пометку определенного типа изображения из флажка, и изображение появится. Если я нажму сброс, он исчезнет и выдаст мне черный экран. - person Hick; 02.01.2011
comment
Если это так просто, как вы сказали, то переопределения метода paint() более чем достаточно. Это очень прямолинейно. Вам нужно будет добавить прослушиватель к флажку и написать логику в методе paint() для обработки условия о том, что делать, когда. - person bragboy; 02.01.2011
comment
-1, вы никогда не должны переопределять метод paint() JFrame, особенно если вы не вызываете supper.paint(). Пользовательское рисование выполняется путем переопределения метода paintComponent() компонента Swing, такого как JPanel. Также вы всегда должны вызывать super.paintComponent(). Прочтите раздел руководства Swing по пользовательскому рисунку (download.oracle.com). /javase/tutorial/uiswing/painting/index.html) для получения дополнительной информации и примеров. - person camickr; 02.01.2011
comment
У меня проблемы с кодированием коробки, внутри которой будут появляться фигуры. И когда я нажимаю сброс, образуется черный экран. - person Hick; 02.01.2011
comment
Это последний ужин.paint()? [\юмор] - person geowar; 18.10.2017

В API Java2D есть то, что вам нужно.

person Starkey    schedule 02.01.2011

Ознакомьтесь с парой идей на странице Индивидуальные подходы к рисованию. DrawOnComponent ближе к тому, что вы хотите. Его нужно будет изменить, чтобы добавить в список объекты пользовательской формы.

person camickr    schedule 02.01.2011

GraphPanel – это простой пример программы для рисования объектов, в которой есть подвижные, изменяемые по размеру цветные узлы, соединенные по краям.

person trashgod    schedule 02.01.2011

Java 2D — это то, что вам нужно для рисования графики (т. е. рисование цветных прямоугольников, кругов, линий и их анимация).

person user527619    schedule 02.01.2011