1) Интерфейс (код) class TestFrame
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestFrame {
public static void createGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("Test frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Test label");
frame.getContentPane().add(label);
frame.setPreferredSize(new Dimension(200, 100));
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createGUI();
}
});
}
}
2) код (консоль) class gg
import java.util.Scanner;
public class gg {
public static void main (String[] args) {
System.out.println("Введите слово");
Scanner scanner = new Scanner(System.in);
String a = scanner.nextLine();
System.out.print("В слове " + a + " " + a.length() + " БУКВЫ ");
}
}
Java
Как создать программу (Java), чтобы была не консольной, а с интерфейсом GUI
Не вполне ясен вопрос..
Нужно сделать клон второй программы с использованием интерфейса?
Если да, то первый листинг с кодом такого не предоставит - он создаёт интерфейс, но не имеет ни одного компонента, допускающего ввод.
Как минимум, необходимо добавить объект JTextField, либо JTextArea
(однострочное и многострочное поле ввода)
Недолюбливаю менеджеры компоновки за их дурную привычку извращаться над размерами компонентов, так что предложу нижеследующее решение:
package exp;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
* @author Lira_Heartstrings, also known as OldTeaOwl
*/
public class NewClass1 {
static int x = 10;
static int y = 50;
static int width = 200;
static int height = 40;
//Собственно, окно. Пока невидимое, и не имеющее размеров
static JFrame frame = new JFrame("Заголовок окна");
//Однострочное текстовое поле, поддерживает ввод
static JTextField input = new JTextField("");
//Текстовая метка, не допускает ввод
static JLabel text = new JLabel("Введите текст!");
public static void main(String[] args) {
//Настраиваем размеры
text.setBounds(x, y, width, height);
input.setBounds(x, y + 50, width, height);
frame.setSize(500, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Кнопка
JButton button = new JButton("Принято");
button.setBounds(180, y + 200, 120, 40);
//Слушатель событий, фиксирует и обрабатывает нажатие на кнопку
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = input.getText();
text.setText("В ведённой строке " + data.length() + " символов!");
frame.repaint();
}
});
/*Настройки окна - центрирование, код действия на кнопке закрытия окна,
добавление всех компонентов на окно, неизменяемость его размеров, отключение менеджера компоновки
и отображение на экране
*/
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(text);
frame.add(input);
frame.add(button);
frame.setResizable(false);
frame.setLayout(null);
frame.setVisible(true);
}
}
P.s. Пояснение ключевых точек см. в комментариях внутри программы
Нужно сделать клон второй программы с использованием интерфейса?
Если да, то первый листинг с кодом такого не предоставит - он создаёт интерфейс, но не имеет ни одного компонента, допускающего ввод.
Как минимум, необходимо добавить объект JTextField, либо JTextArea
(однострочное и многострочное поле ввода)
Недолюбливаю менеджеры компоновки за их дурную привычку извращаться над размерами компонентов, так что предложу нижеследующее решение:
package exp;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
* @author Lira_Heartstrings, also known as OldTeaOwl
*/
public class NewClass1 {
static int x = 10;
static int y = 50;
static int width = 200;
static int height = 40;
//Собственно, окно. Пока невидимое, и не имеющее размеров
static JFrame frame = new JFrame("Заголовок окна");
//Однострочное текстовое поле, поддерживает ввод
static JTextField input = new JTextField("");
//Текстовая метка, не допускает ввод
static JLabel text = new JLabel("Введите текст!");
public static void main(String[] args) {
//Настраиваем размеры
text.setBounds(x, y, width, height);
input.setBounds(x, y + 50, width, height);
frame.setSize(500, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Кнопка
JButton button = new JButton("Принято");
button.setBounds(180, y + 200, 120, 40);
//Слушатель событий, фиксирует и обрабатывает нажатие на кнопку
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = input.getText();
text.setText("В ведённой строке " + data.length() + " символов!");
frame.repaint();
}
});
/*Настройки окна - центрирование, код действия на кнопке закрытия окна,
добавление всех компонентов на окно, неизменяемость его размеров, отключение менеджера компоновки
и отображение на экране
*/
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(text);
frame.add(input);
frame.add(button);
frame.setResizable(false);
frame.setLayout(null);
frame.setVisible(true);
}
}
P.s. Пояснение ключевых точек см. в комментариях внутри программы
как много в написанном тобой коде ты реально понимаешь?
Ну так сделал же.
Похожие вопросы
- Помогите разобрать программу java
- Можно ли в программе JAVA иметь более одного мейна?
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Абстрактный класс или интерфейс (java)
- Работа со строками Java Разработать программу, которая вводит строку и находит все слова указанной длины n (n вводится).
- Написать программу на языке java
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Java.Комментирование. Надо прокомеентировать каждую строку этой программы.
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не выводит изображение в JAVA