Я начинаю изучать Java немного спустя долгое время.И изучая Netbeans 7.0.
Я просто хочу убедиться, что я делаю это хорошо.
Мне нужно сделать апплет, но не на AWT, а на Swing.
Так что мне нужно расширять JApplet, а не Applet.Я понимаю, что в Swing рисует на Jpanel вместо AWT холст (или Panel).И поэтому я прочитал на веб-сайте, что нужно переопределить PaintComponent () вместо переопределения paint (), как в случае с апплетом awt?
Мне нужно сделать очень простой апплет, скажем, с одной кнопкой, когдаЯ нажимаю на нее, хочу нарисовать графику, сказать линию или круг, и сделать вывод в область под кнопкой.
Это то, что я сделал
- Файл-> Новый проект
- Выберите Java и в проектах, выберите «Приложение Java»
- Убедитесь, что сняли флажок «Создать главный класс», и нажмите «Готово»
- Файл-> Новый файл
- Выберите «Swing GUI Forms» из-под панели каталогов.
- В «Типах файлов» выберите Форма Japplet, Далее и Готово
- ИзПалитра, из Swing Controls, выберите Button и положите его от
- Теперь сложная часть.Мне нужна область для рисования, верно?Итак, я из палитры, я выбираю из контейнеров Swing «Панель» и кладу ее на форму, изменяя ее размер по мере необходимости.Теперь у меня есть это:
Я на правильном пути?Теперь я открываю исходный файл и вижу метод init ().
Теперь мне нужна небольшая помощь.Не уверен, какой код мне нужно вставить, чтобы просто нарисовать линию на JPanel, которую я только что добавил.Я знаю, что мне нужно вставить его здесь:
Я попробовал функцию "Вставить код" и выбрал переопределение, но не вижу PaintComponent ()?
Я знаю, как это сделать в апплете SWT, просто добавьте метод рисования (Graphics g).Но когда я делаю это, графика не прорисовывается внутри области Jpanel.Как мне сказать, чтобы нарисовать что-то в определенной области JPanel?
Если кто-то просто скажет мне, какой код мне нужно вставить, чтобы нарисовать линию или какой-либо объект graphics2D для отображения на той JPanel, которую я добавил под дном, это будет здорово.
спасибо, --Nasser
РЕДАКТИРОВАТЬ 1:
Просто пояснение: если я добавлю эту функцию, чтобы рисовать на Jpanel:
общедоступная краска void (Графика g)
{
super.paint (g);
g.drawString (....);}
Тогда выходные данные отображаются нормально, но через основной Japnel.И может скрыть кнопку и любые другие компоненты пользовательского интерфейса.
Мне нужен вывод краски, чтобы перейти к определенной Jpanel, который я добавил ранее под кнопкой.На этот
private javax.swing.JPanel jPanel1;
Итак, мой вопрос, как рисовать / рисовать на вышеуказанном объекте, а не на главной Jpanel?
РЕДАКТИРОВАТЬ 2:
Iпопытался просто изменить цвет фона JPanel, и он не работает.Вот кодЯ также попробовал JpanelForm вместо JApplet Form.Можно ли использовать форму JFrame для создания апплета?Поскольку для этого требуется main (), это кажется невозможным.
import javax.swing.*;
import java.awt.*;
import java.awt.Graphics;
public class NewJApplet extends javax.swing.JApplet
{
/** Initializes the applet NewJApplet */
public void init()
{
jPanel1 = new JPanel();
try
{
java.awt.EventQueue.invokeAndWait(new Runnable()
{
public void run()
{
initComponents();
}
});
} catch (Exception ex)
{
ex.printStackTrace();
}
}
private void initComponents() {...}
//--------- ADDED THIS
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
Rectangle rect=new Rectangle(4,4);
jPanel1.setBackground(Color.RED);
}
//---------------
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}