2011-02-25 7 views
2

Я использовал Java в течение некоторого времени, но никогда не создавал графический интерфейс - всегда CLI. Как создать графический интерфейс в Java? Можете ли вы предложить хороший учебник/ссылку?Как создать графический интерфейс в Java

Я ищу для создания простого графического интерфейса, который имеет две длинные области текста и некоторые кнопки.

+2

http://www.google.com/search?hl=ru&source=hp&biw=1440&bih=715&q=creating+a+ui+in+java&aq=f&aqi=g1&aql=&oq= – Flynn1179

+0

http://download.oracle. com/javase/tutorial/uiswing/ –

+1

@ Flynn1179, что Google считает популярными веб-сайты для GUI, не дает мне профессионального мнения, которое я ищу в SO. –

ответ

5

Прочитать о Swing на страницах Учебника Oracle.

+2

Plz no. Это 2017 год. Нет причин использовать Swing над Javafx/others. –

1

У вас есть различные возможности, но я бы рекомендовал использовать качание с IDE, таких как Netbeans, который обеспечивает очень хороший редактор WYSIWYG (называется Matisse).

У Netbeans также есть шаблоны проектов, которые вы можете использовать для быстрого начала работы.

Наконец, как указывали другие, обязательно сделайте домашнее задание и прочитайте учебники для начинающих Swing.

4

Вот простой пример

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JTextArea; 

public class Foo{ 

    public static void main(String[] args) { 

    JFrame f = new JFrame("A JFrame"); 
    f.setSize(250, 250); 
    f.setLocation(300,200); 
    final JTextArea textArea = new JTextArea(10, 40); 
    f.getContentPane().add(BorderLayout.CENTER, textArea); 
    final JButton button = new JButton("Click Me"); 
    f.getContentPane().add(BorderLayout.SOUTH, button); 
    button.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      textArea.append("Button was clicked\n"); 

     } 
    }); 

    f.setVisible(true); 

    } 

} 
+0

Событие может быть заменено выражением лямбда: button.addActionListener ((ActionEvent e) -> { textArea.append (кнопка была нажата \ n "); }); - этот пример стоит тысячи слов ... – pollaris

0

Создание JFrame является п все так сложно, как думают люди, все, что вам нужно, это класс определения и класс GUI. Это одна из самых простых вещей в Java

Определение Класс:

public class GetMyJavaWindow { 
public static void main (String args[]) { 
new JavaWindow(); 
} 
} 

JFrame класс:

import javax.swing.JFrame; 

public class JavaWindow { // Class name must match what it says in the def. class 
public static final long serialVersionUID = 1L; // Needed for the JFrame to work. 

public JavaWindow() { // Must match class name 

this.setVisible(true); // Required 
this.setDefaultCloseOperation(EXIT_ON_CLOSE); // Required 
this.setSize(800,600); // this.setSize (x,y); 

} 
} 

Если вам нужно больше GUI помощь, приходите ко мне.

1

Хорошо, что вам нужно сделать, это создать текст/код тонкий (Note Pad ++ или Notepad) и запомнить имя.

Затем откройте его тип

import java.awt.*; 
import javax.swing.*; 

В основном это говорит Java, чтобы получить java.awt и javax.swing из его различных кодовых библиотек, поставляемых вместе с Java, когда вы загрузили его (Понятный, как это язык сделано, чтобы помочь разработчикам).

Затем вам необходимо сделать свою функцию, которая будет иметь все, от размера, текста внутри, цвета и т. Д. REMEBER, мы не кодируем gui здесь, как это уже было сделано, когда мы импортировали импорт java.awt.*; и javax.swing.* ;.

Когда я положил public class work, работайте над именем моего файла (если бы это было вызвано кодом, это было бы public class code.

public class work { 

private static void createWindow() { 

//Create and set up the window 
JFrame frame = new JFrame ("simple GUI"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
JLabel textLabel = new JLabel("Im cool" ,SwingConstants.CENTER); 
textLabel.setPreferredSize(new Dimension(300, 100)); 
frame.getContentPane().add(textLabel, BorderLayout.CENTER); 
//Display the window 
frame.setLocationRelativeTo(null); 
frame.pack(); 
frame.setVisible(true); 

Помните, что вы не вызывали функцию в любом месте, ее в основном ждут там до ее вызова.

public static void main(String[] args) { 

Это говорит компьютеру, что когда-нибудь будет, когда вы запустите программу.

Так внутри, что вам нужно положить

createWindow(); 

Поскольку это то, что вы назвали вашу функцию выше, и это вызов функции, вам не нужно вызывать эту функцию, как она делает это при запуске программа.

Смежные вопросы