рисуя линию между каждыми двумя точками в списке соответственно - PullRequest
0 голосов
/ 19 ноября 2010

Привет, я работаю с NetBeans.Я написал код, который сначала имеет два класса (1) Demo (2) mainFrame which extends javax.swing.JFrame

, мой mainFrame будет запущен, и он покажет панель, на которой можно поставить некоторые точки, а затем, когда вы нажмете кнопку;размерность всех точек будет сохранена в списке, затем я отправлю этот список на Demo class, потому что мне нужно расположить точки в порядке, чтобы вы могли провести линию между каждыми двумя точками соответственно.У меня есть две проблемы:

  1. У меня есть list <listOfPoints>, как я могу отправить этот список в класс mainFrame для рисования линий, не создавая новый объект класса mainFrame?

  2. Должен ли я работать с методом рисования?Пожалуйста, помогите мне пример кода в Java (с NetBeans)

    Всего:

    I have a lot of points' dimension in my list ,I want to traverse my list in the i.e., paint method and draw line between each pi and pi+1.how can I do this?
    

спасибо

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Имеет ли значение, что вы используете Netbeans?

Также ответить:

Я думаю, что в Swing вы обычно переопределяете метод paintComponent (Graphics gg), чтобы описать, как вы хотите, чтобы ваша панель / рамка были нарисованы. И вызовите repaint (), когда вы хотите, чтобы ваша программа на самом деле перерисовывала себя.

Возможно, вы захотите прочитать этот урок здесь: http://download.oracle.com/javase/tutorial/uiswing/ Особенно в разделе «Выполнение заказной росписи».

Также посмотрите соответствующие части API Swing и AWT.

Вы можете рисовать линии, используя метод drawLine () графического класса. Или используя класс Line (Line2D.Double и т. Д.) Для представления своих линий, а затем переходите к graphicsObject.draw (line) и т. Д.

Что вы могли бы сделать, это добавить точки в список, а затем добавить их на графическую панель (перекрасить всякий раз, когда вы добавляете одну), а затем при нажатии кнопки можно было запустить метод для обработки списка в Кнопка actionListener. Так что-то вроде: list = demo.processList (list). Где processList имеет заголовок, такой как: public List processList (List toProcess).

1 голос
/ 19 ноября 2010

Google: netbeans java drawline

первый ответ

поиск

Graphics gg = buffImg.createGraphics();
        gg.setColor(Color.MAGENTA);
        gg.drawLine(10,10,buffImg.getWidth()-buffImg.getWidth()/10,

http://wws2.uncc.edu/tpw/tpwJavaNtebeansTutorial/index.html

относительно вашего вопроса о составлении списка точек

void drawList(Graphics gg, List points){
   MyPointClass prev p = null;
   for(MyPointClass p : points){
       if(prevp != null){
           gg.drawLine(prevp.x, prevp.y, p.x, p.y);
       }
       prev = p;
    }
}

И если вам не хочется передавать объект из одного кадра в другой мужской статический drawList, а затем вы можете сделать MyClassContainedDrawLineMethod.drawList (gg, points);

...