2016a
Материал из PTHSWiki
Версия от 09:29, 29 января 2014; Antonk (обсуждение | вклад)
Java Swing. ActionListener
class Window3 extends JFrame {
int num1;
char operation;
Window3() {
super("Ы:)");
operation = 'E';
setSize(700, 666);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Box b = Box.createVerticalBox();
final JButton b1 = new JButton("+");
b.add(b1);
final JButton b2 = new JButton("-");
b.add(b2);
final JButton b3 = new JButton("=");
b.add(b3);
final JTextArea tf = new JTextArea();
b.add(tf);
tf.setText("0");
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (operation != 'E') {
b3.doClick();
}
num1 = Integer.parseInt(tf.getText());
tf.setText("");
operation = ((JButton)(arg0.getSource())).getText().charAt(0);
}
};
b1.addActionListener(al);
b2.addActionListener(al);
b3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int num2 = Integer.parseInt(tf.getText());
switch (operation) {
case '+':
tf.setText(Integer.toString(num1+num2));
break;
case '-':
tf.setText(Integer.toString(num1-num2));
break;
// default:
// tf.setText("");
}
operation = 'E';
}
});
setContentPane(b);
}
}
Java Swing. JTabbedPane
Box b = Box.createVerticalBox();
JTabbedPane tp = new JTabbedPane();
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
panel1.add(new JButton("1111111"));
JTextArea ta = new JTextArea(20, 20);
panel1.add(ta);
panel1.add(new JScrollPane(ta));
tp.addTab("Заголовок", panel1);
JPanel panel2 = new JPanel();
panel2.setLayout(new FlowLayout());
panel2.add(new JButton("2222222"));
panel2.add(new JTextArea(20, 20));
tp.addTab("Заголовок2", panel2);
b.add(tp);
Java Swing. JFileChooser
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.*;
class Window2 extends JFrame {
Window2() {
super("Ы)");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 400);
Box b = Box.createVerticalBox();
JButton b1 = new JButton("+");
b.add(b1);
JButton b2 = new JButton("Exit");
b.add(b2);
final JTextArea tf = new JTextArea();
b.add(tf);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser opener = new JFileChooser();
int res = opener.showOpenDialog(getParent());
if (res == JFileChooser.APPROVE_OPTION) {
File f = opener.getSelectedFile();
try {
Scanner s = new Scanner(f);
while (s.hasNext()) {
String str = s.nextLine();
tf.append(str+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
setContentPane(b);
}
}
public class Main {
public static void main(String[] args) {
JFrame w = new Window2();
w.setVisible(true);
}
}
Java Swing
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.*;
class TestWindow extends JFrame {
TestWindow() {
super("Заголовок окна");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 400);
// JPanel panel = new JPanel();
// panel.setLayout(new BorderLayout());
//
// JPanel upPanel = new JPanel();
// upPanel.setLayout(new FlowLayout());
// JButton b1 = new JButton("1");
// upPanel.add(b1);
// JButton b2 = new JButton("2");
// upPanel.add(b2);
//
// JPanel downPanel = new JPanel();
// downPanel.setLayout(new FlowLayout());
// JButton b3 = new JButton("3");
// downPanel.add(b3);
// JButton b4 = new JButton("4");
// downPanel.add(b4);
//
// panel.add(upPanel, BorderLayout.NORTH);
// panel.add(downPanel, BorderLayout.SOUTH);
// setContentPane(panel);
// Box box = Box.createVerticalBox();
// JButton b1 = new JButton("1");
// JButton b2 = new JButton("2");
// JButton b3 = new JButton("3");
// JButton b4 = new JButton("4");
// box.add(b1);
// box.add(Box.createVerticalStrut(20));
// box.add(b2);
// box.add(Box.createVerticalGlue());
// box.add(b3);
// box.add(b4);
// setContentPane(box);
final JPanel panel = new JPanel();
panel.setLayout(null);
final JButton b1 = new JButton("1");
b1.setSize(100, 57);
b1.setLocation(100, 87);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Random r = new Random();
b1.setLocation(r.nextInt(panel.getWidth()), r.nextInt(panel.getHeight()));
int a = Integer.parseInt(b1.getText());
b1.setText(Integer.toString(a+1));
}
});
b1.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
Random r = new Random();
b1.setLocation(r.nextInt(panel.getWidth()), r.nextInt(panel.getHeight()));
int a = Integer.parseInt(b1.getText());
b1.setText(Integer.toString(a+1));
}
});
panel.add(b1);
setContentPane(panel);
}
}
public class Main {
public static void main(String[] args) {
JFrame window = new TestWindow();
window.setVisible(true);
}
}
Задание по отладке
public class Errors {
public static void main(String[] args) {
int arr[] = new int[20];
for (int i = 0; i <= 20; i++) {
arr[i] = i*i;
}
int sum = 0;
for (int i = 0; i <= 20; i++) {
if (i % 2 == 0) {
sum = sum + arr[i];
} else {
sum = sum - arr[i];
}
}
System.out.println(sum);
}
}
Чтение массива из файла (BufferedReader - по одному числу в строке)
/*
* Читает из файла input.txt
* В первой строке число n - количество чисел.
* В следующих n строках по одному числу в строке
*
* Пример:
* 6
* 12
* 1
* 41
* 2
* 54
* 13
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
int n = Integer.parseInt(br.readLine());
int arr[] = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
Чтение массива из файла (Scanner - можно числа в одной строке)
/* * Читает из файла input.txt * В первой строке число n - количество чисел. * Во второй - n чисел. * * Пример: * 6 * 12 1 41 2 54 13 */ import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Main2 { public static void main(String[] args) throws NumberFormatException, IOException { Scanner sc = new Scanner(new File("input.txt")); int n = sc.nextInt(); int arr[] = new int[n]; for (int i = 0; i < arr.length; i++) { arr[i] = sc.nextInt(); } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
А+Б. Ввод из файла. Вывод в файл
import java.io.*; import java.util.*; public class aplusb { public static void main(String[] args) throws IOException { Scanner in = new Scanner(new File("aplusb.in")); PrintWriter out = new PrintWriter(new File("aplusb.out")); int a = in.nextInt(); int b = in.nextInt(); out.println(a + b); in.close(); out.close(); } }
Ввод двух чисел в строку
Scanner sc=new Scanner(System.in); int num1=sc.nextInt(); int num2=sc.nextInt();
Ввод с клавиатуры
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { int a, b; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); a = Integer.parseInt(br.readLine()); b = Integer.parseInt(br.readLine()); System.out.println(a+b); } }
Функции
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { int a, b, c; double d; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); a = Integer.parseInt(br.readLine()); b = Integer.parseInt(br.readLine()); c = sum(a, b); d = mySqrt(b); System.out.println(c); System.out.println(d); } public static double mySqrt(int a) { return Math.sqrt(a); } public static int sum(int a, int b) { System.out.println("I really want to sleep"); return a+b; } public static int max2(int a, int b) { if (a > b) { return a; } else { return b; } } }
Создание собственных классов
import java.util.Scanner;
public class Main {
public static class Person {
public String name;
public int ege;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Person arr[] = new Person[2];
for (int i = 0; i < arr.length; i++) {
arr[i] = new Person();
arr[i].name = sc.next();
arr[i].ege = sc.nextInt();
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i].ege + " " + arr[i].name);
}
}
}
ArrayList и чтение до конца файла
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(new File("input.txt"));
ArrayList<Point> al = new ArrayList<Point>();
while (sc.hasNext()) {
int a = sc.nextInt();
int b = sc.nextInt();
Point p = new Point(a, b);
al.add(p);
}
for (int i = 0; i < al.size(); i++) {
al.get(i).print();
}
}
}