java可以写用界面吗_用java可以写窗口程序么?

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。使用Java的优势在于网络应用方面,但Java也提供了强大的用于开发桌面程序的API,它们包含在javax.swing包中.使用这个包可以编写简单的Java桌面应用程序(窗口程序).

b41bce243930c536ccd9d050da233886.png

Java的javax.swing包提供了许多用来设计GUI的组件类,在学习GUI编程时,需要掌握两个概念:容器类(Container)和组件类(Component),以下是GUI编程中经常提到的基本知识点.

Java把Component类的子类或间接子类创建的对象称为一个组件.

Java把Container的子类或间接子类创建的对象称为一个容器.

可以向容器中添加组件.Container类提供了一个public方法add(),一个容器可以调用这个方法将组件添加到该容器中.

容器调用removeAll()方法可以移除掉容器中的全部组件,调用remove(Component c)方法可以移除掉容器总参数c指定的组件.

容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套.

每当容器添加新的组件或移除组件时,应当让容器调用validate方法,以保证容器中的组件能正确显示出来.

接下来用Java编写一个简单的桌面程序。

一个Java的应用程序需要使用JFrame类的实例来提供一个底层容器和操作系统进行交互,当需要一个窗口时,使用JFrame或其子类创建一个对象。窗口也是一个容器,可以向窗口添加组件。需要注意的是,窗口默认被系统添加到显示器屏幕上,一次不允许讲一个窗口添加到另一个容器中。package gui;

import javax.swing.*;

import java.awt.*;

import java.awt.event.KeyEvent;

import java.awt.event.InputEvent;

public class Text {

public static void main(String[] args) {

JFrame a=new JFrame("浏览器");//顶层容器

JMenuBar b=new JMenuBar();//菜单条

JMenu c=new JMenu("文件A");//菜单

c.setMnemonic('A');

//c.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

JMenu d=new JMenu("编辑B");//菜单

d.setMnemonic('B');

//d.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));

JMenu e=new JMenu("查看C");//菜单

c.setMnemonic('C');

//e.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

JMenuItem f=new JMenuItem("保存");//菜单项

f.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK));

JMenu g=new JMenu("打开");//子菜单

//g.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));

JMenuItem h=new JMenuItem("打开x");//菜单项

h.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));

JMenuItem i=new JMenuItem("打开y");//菜单项

i.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));

JMenuItem j=new JMenuItem("复制");//菜单项

j.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));

JMenuItem k=new JMenuItem("停止");//菜单项

k.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,InputEvent.CTRL_MASK));

JMenuItem l=new JMenuItem("刷新");//菜单项

l.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));

g.add(h);

g.add(i);

c.add(g);

c.add(f);

d.add(j);

e.add(k);

e.add(l);

b.add(c);

b.add(d);

b.add(e);

a.setJMenuBar(b); //将菜单条加入窗口

a.setBounds(260,100,188,108);

a.setVisible(true);

a.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

}

}

Java中可以使用Swing来创建窗口界面。下面是一个简单的聊天窗口的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ChatWindow extends JFrame implements ActionListener { private JTextArea chatArea; private JTextField inputField; public ChatWindow() { setTitle("聊天窗口"); setSize(400, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建聊天区域 chatArea = new JTextArea(); chatArea.setEditable(false); JScrollPane chatPanel = new JScrollPane(chatArea); // 创建输入框和发送按钮 inputField = new JTextField(); JButton sendButton = new JButton("发送"); sendButton.addActionListener(this); // 添加组件到窗口中 Container container = getContentPane(); container.setLayout(new BorderLayout()); container.add(chatPanel, BorderLayout.CENTER); JPanel inputPanel = new JPanel(); inputPanel.setLayout(new BorderLayout()); inputPanel.add(inputField, BorderLayout.CENTER); inputPanel.add(sendButton, BorderLayout.EAST); container.add(inputPanel, BorderLayout.SOUTH); } @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("发送")) { String text = inputField.getText(); if (!text.isEmpty()) { chatArea.append("我:" + text + "\n"); inputField.setText(""); } } } public static void main(String[] args) { ChatWindow chatWindow = new ChatWindow(); chatWindow.setVisible(true); } } ``` 这个聊天窗口包含了一个文本框和一个发送按钮,当用户点击发送按钮时,程序会将输入框内的文本添加到聊天区域中,并清空输入框。你可以根据自己的需要修改代码来实现更多的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值