21xrx.com
2024-12-23 00:16:45 Monday
登录
文章检索 我的文章 写文章
Java编写图形界面程序教程:实例详解
2023-06-19 18:33:24 深夜i     --     --
Java编程 图形用户界面 Swing组件库

在Java编程中,图形用户界面(GUI)是一种重要的开发方式。如果你想编写一个可以在屏幕上进行交互的程序,那么GUI就是必不可少的。本教程将介绍如何使用Java编写图形界面程序,包括创建窗口、添加控件、设计布局以及添加事件处理器等方面。

首先,我们需要建立一个窗口。在Java中,我们可以使用Swing组件库来实现这一点。以下是一个简单的示例代码,可以创建一个基本窗口:


import javax.swing.JFrame;

public class MyWindow extends JFrame {

  public MyWindow() {

    setTitle("My Window");

    setSize(300, 200);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(EXIT_ON_CLOSE);

  }

  public static void main(String[] args) {

    MyWindow window = new MyWindow();

    window.setVisible(true);

  }

}

在这个示例中,我们继承了JFrame类,并在构造函数中进行了一些设置,如设置窗口标题、大小和关闭行为。接着,我们创建了一个MyWindow对象并将其设置为可见的。

接下来,我们可以向窗口添加控件。这些控件可以是按钮、标签、文本框等等。以下是一些示例代码,可以创建一些基本的控件:


import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class MyWindow extends JFrame {

  public MyWindow() {

    setTitle("My Window");

    setSize(300, 200);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    JButton button = new JButton("Click me!");

    JTextField textField = new JTextField("Type here");

    panel.add(button);

    panel.add(textField);

    add(panel);

  }

  public static void main(String[] args) {

    MyWindow window = new MyWindow();

    window.setVisible(true);

  }

}

在这个示例中,我们创建了一个JPanel对象,并在其上添加了一个按钮和一个文本框。然后,我们将这个JPanel添加到了窗口中。

当我们添加完控件后,我们需要考虑布局的问题。布局是决定控件在窗口中显示的位置和大小的方式。在Java中,有多种布局管理器可以使用,例如FlowLayout、BorderLayout、GridLayout等等。以下是一些示例代码,可以使用GridLayout布局管理器将控件排列成网格状:


import java.awt.GridLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class MyWindow extends JFrame {

  public MyWindow() {

    setTitle("My Window");

    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JPanel panel = new JPanel(new GridLayout(3, 1));

    JButton button1 = new JButton("Button 1");

    JButton button2 = new JButton("Button 2");

    JTextField textField = new JTextField("Type here");

    panel.add(button1);

    panel.add(button2);

    panel.add(textField);

    add(panel);

    pack();

    setLocationRelativeTo(null);

  }

  public static void main(String[] args) {

    MyWindow window = new MyWindow();

    window.setVisible(true);

  }

}

在这个示例中,我们创建了一个GridLayout布局管理器,并将其设置为3行1列的网格。然后,我们创建了两个按钮和一个文本框,并将它们添加到了一个JPanel上。最后,我们将这个JPanel添加到了窗口中,并使用pack()方法调整窗口的大小,使用setLocationRelativeTo(null)方法使窗口居中显示。

最后,我们需要添加事件处理器,以响应控件的操作。例如,当用户单击按钮时,我们可能需要执行一些代码。以下是一些示例代码,可以将事件处理器添加到按钮上:


import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class MyWindow extends JFrame {

  public MyWindow() {

    setTitle("My Window");

    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JPanel panel = new JPanel(new GridLayout(3, 1));

    JButton button1 = new JButton("Button 1");

    JButton button2 = new JButton("Button 2");

    JTextField textField = new JTextField("Type here");

    button1.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {

        textField.setText("Button 1 clicked");

      }

    });

    button2.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e) {

        textField.setText("Button 2 clicked");

      }

    });

    panel.add(button1);

    panel.add(button2);

    panel.add(textField);

    add(panel);

    pack();

    setLocationRelativeTo(null);

  }

  public static void main(String[] args) {

    MyWindow window = new MyWindow();

    window.setVisible(true);

  }

}

在这个示例中,我们创建了两个事件处理器,分别用于响应按钮1和按钮2的单击事件。当用户单击这些按钮时,相应的文本将显示在文本框中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复