1. Установка JDK.
2. Установке IDE NetBeans.
3. Системная переменная JAVA_HOME. Команды set, echo.
4. Пример 1. Hello World.
public class JavaApplication1 { public static void main(String[] args) { System.out.println("Hello, World!"); } }
4.1. Компиляция в командной строке
javac JavaApplication1.java
4.2. Запуск из командной строки
java -classpath . JavaApplication
5. Пример 2. Примитивное окно приложений.
// AWT - Abstract Window Toolkit import java.awt.*; public class JavaApplication2 { public static void main(String[] args) { System.out.println("Hello, World!"); Frame fr = new TooSimpleFrame(); fr.setSize(400, 150); fr.setVisible(true); } } class TooSimpleFrame extends Frame{ public static void main(String[] args){ } }
6. Пример 3. Примитивное окно приложений с обработкой события Close.
import java.awt.*; import java.awt.event.*; class SimpleFrame extends Frame{ SimpleFrame(String s){ super(s); setSize(400, 150); setVisible(true); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } public static void main(String[] args){ new SimpleFrame(" Моя программа"); } }
7. Пример 4. Окно приложений с выводом текста.
import java.awt.*; import java.awt.event.*; class HelloWorldFrame extends Frame{ HelloWorldFrame(String s){ super(s); } public void paint(Graphics g){ g.setFont(new Font("Serif", Font.ITALIC | Font.BOLD, 30)); g.drawString("Hello, XXI century World!", 20, 100); } public static void main(String[] args){ Frame f = new HelloWorldFrame("Здравствуй, мир XXI века!"); f.setSize(400, 150); f.setVisible(true); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } }
8. Пример 5. Окно приложений c графическим примитивом линии.
import java.awt.*; import java.awt.event.*; class GraphTest01 extends Frame{ GraphTest01(String s) { super(s); setBounds(0, 0, 500, 300); setVisible(true); } public void paint(Graphics g){ Dimension d = getSize(); int dx = d.width / 20, dy = d.height / 20; int myWidth = 250, myHeight = 250; g.drawLine(0, 0, myWidth, myHeight); g.drawLine(0, 0, d.width, d.height); } public static void main(String[] args){ GraphTest01 f = new GraphTest01(" Пример рисования"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } }
9. Пример 6. Окно приложений c графическими примитивами и текстом.
import java.awt.*; import java.awt.event.*; class GraphTest extends Frame{ GraphTest(String s) { super(s); setBounds(0, 0, 500, 300); setVisible(true); } public void paint(Graphics g){ Dimension d = getSize(); int dx = d.width / 20, dy = d.height / 20; g.drawRect(dx, dy + 20, d.width - 2 * dx, d.height - 2 * dy - 20); g.drawRoundRect(2 * dx, 2 * dy + 20, d.width - 4 * dx, d.height -4 * dy - 20, dx, dy); g.fillArc(d.width / 2 - dx, d.height - 2 * dy + 1, 2 * dx, dy - 1, 0, 360); g.drawArc(d.width / 2 - 3 * dx, d.height - 3 * dy / 2 - 5, dx, dy / 2, 0, 360); g.drawArc(d.width / 2 + 2 * dx, d.height - 3 * dy / 2 - 5, dx, dy / 2, 0, 360); Font f1 = new Font("Serif", Font.BOLD | Font.ITALIC, 2 * dy); Font f2 = new Font ("Serif", Font.BOLD, 5 * dy / 2); FontMetrics fm1 = getFontMetrics(f1); FontMetrics fm2 = getFontMetrics(f2); String s1 = "Всякая последняя ошибка"; String s2 = "является предпоследней."; String s3 = "Закон отладки"; int firstLine = d.height / 3; int nextLine = fm1.getHeight(); int secondLine = firstLine + nextLine / 2; g.setFont(f2); g.drawString(s3, (d.width-fm2.stringWidth(s3)) / 2, firstLine); g.drawLine(d.width / 4, secondLine - 2, 3 * d.width / 4, secondLine - 2); g.drawLine(d.width / 4, secondLine - 1, 3 * d.width / 4, secondLine - 1); g.drawLine(d.width / 4, secondLine, 3 * d.width / 4, secondLine); g.setFont(f1); g.drawString(s1, (d.width - fm1.stringWidth(s1)) / 2, firstLine + 2 * nextLine); g.drawString(s2, (d.width - fm1.stringWidth(s2)) / 2, firstLine + 3 * nextLine); } public static void main(String[] args){ GraphTest f = new GraphTest(" Пример рисования"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } }
10. Пример 7. Окно приложений c графическими примитивами.
import java.awt.*; import java.awt.event.*; class GraphTest01 extends Frame{ GraphTest01(String s) { super(s); setBounds(0, 0, 500, 300); setVisible(true); } public void paint(Graphics g){ Dimension d = getSize(); int dx = d.width / 20, dy = d.height / 20; int myWidth = 250, myHeight = 250; g.drawLine(0, 0, myWidth, myHeight); g.drawLine(0, 0, d.width, d.height); } public static void main(String[] args){ GraphTest01 f = new GraphTest01(" Пример рисования"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } }
11. Пример 8. Окно приложений c графиком синуса.
import java.awt.*; import java.awt.event.*; class GraphTest02 extends Frame{ GraphTest02(String s) { super(s); setBounds(0, 0, 500, 300); setVisible(true); } public void paint(Graphics g){ Dimension d = getSize(); int dx = d.width / 20, dy = d.height / 20; int myWidth = 250, myHeight = 250; int x0 = d.width/2, y0 = d.height/2; g.drawLine(0, y0, d.width, y0); // x-axe g.drawLine(x0, 0, x0, d.height); // y-axe int gx1 = x0, gy1 = y0, gx2, gy2; double y; double xScale = 50, yScale = 50; for (double x = -2*3.14; x < 2*3.14; x+=0.1) { y = Math.sin(x); gx2 = x0 + (int)(xScale * x); gy2 = y0 - (int)(yScale * y); g.drawLine(gx1, gy1, gx2, gy2); gx1 = gx2; gy1 = gy2; } } public static void main(String[] args){ GraphTest02 f = new GraphTest02(" Пример рисования"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent ev){ System.exit(0); } }); } }
Задания
1. Скомпилируйте и выполните примеры из командной строки.
2. Скомпилируйте и выполните примеры из IDE NetBeans.
Источники
1. Работа с Java в командной строке.
2. Установка JDK.
3. Графика в Java.
4. Учебник Java.
5. Oracle: Java SE, JDK, NetBeans - downloads.