「javaswing入门」Java Swing

博主:adminadmin 2022-11-26 14:04:09 51

本篇文章给大家谈谈javaswing入门,以及Java Swing对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java图形界面初学者提问 swing atm(大概是这个名字) Javafx的区别是什么

AWT ,SWING , JavaFX 都是java推出的图形界面框架.

简单的描述三者的区别如下:

awt 组件较少, 运行时占用系统资源较少, 适合嵌入式平台等

swing组件略多,运行时占用系统资源较多, 有较多的技术参考资料, 适合PC等

javaFX 组件丰富. 支持3D ,动画, 特效, 多媒体, 也支持html5 ,方便的属性绑定,UI层和事件层分离 ,是更加现代化的图形界面框架.但是资料教材有点少

所以写PC上的java图形界面一般推荐使用swing或JavaFX

Java Swing(初学者):有6个文本框竖直排列和两个按钮(bt1和bt2),默认焦点在第一个文本框上。

以前写的,功能差不多,用1,2,3,4。。代替了。自己看一下吧

ctrl+1  表示选择编号为1的按钮。上下键控制位置变化

package eventDemo;

import java.awt.FlowLayout;

import java.awt.KeyEventPostProcessor;

import java.awt.KeyboardFocusManager;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JButton;

import javax.swing.JFrame;

public class KeyEventDemo implements KeyListener{

JButton []b = new JButton[10];

int x,y;

JFrame jf;

KeyboardFocusManager manager;

public static void main(String []args){

new KeyEventDemo();

}

KeyEventDemo(){

manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();//看这里。。。。。。。。。。。。。。。改成setCurrentKeyboardFocusManager(),其他在改一下就可以了

manager.addKeyEventPostProcessor(new KeyEventPostProcessor() {

@Override

public boolean postProcessKeyEvent(KeyEvent e) {

// TODO Auto-generated method stub

if ((e.getModifiersEx()  InputEvent.CTRL_DOWN_MASK) !=0){

if (e.getKeyCode()==KeyEvent.VK_1){

//System.out.println("11");

b[1].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_2){

System.out.println("11");

b[2].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_3){

System.out.println("11");

b[3].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_4){

System.out.println("11");

b[4].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_5){

System.out.println("11");

b[5].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_6){

System.out.println("11");

b[6].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_7){

System.out.println("11");

b[7].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_8){

System.out.println("11");

b[8].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_9){

System.out.println("11");

b[9].requestFocus();

}

if (e.getKeyCode()==KeyEvent.VK_0){

System.out.println("11");

b[0].requestFocus();

}

}

return false;

}

});

jf = new JFrame("KeyEventDemo");

jf.setLayout(new FlowLayout());

for (int i = 0; i =9; i++) {

b[i] = new JButton(i+"");

jf.add(b[i]);

b[i].addKeyListener(this);

}

jf.setBounds(600,200,200,200);

jf.setVisible(true);

jf.validate();

jf.addKeyListener(new KeyListener() {

@Override

public void keyTyped(KeyEvent e) {

// TODO Auto-generated method stub

if (e.getKeyCode() == KeyEvent.VK_0)

System.out.println('0');

}

@Override

public void keyReleased(KeyEvent e) {

// TODO Auto-generated method stub

}

@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

}

});

}

@Override

public void keyTyped(KeyEvent e) {

// TODO Auto-generated method stub

}

@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

}

@Override

public void keyReleased(KeyEvent e) {

// TODO Auto-generated method stub

JButton temp = (JButton) e.getSource();

x = temp.getBounds().x;

y = temp.getBounds().y;

//System.out.println(x*y);

if (e.getKeyCode() == KeyEvent.VK_UP)

y = y - 20;

if (e.getKeyCode() == KeyEvent.VK_DOWN)

y = y + 20;

if (e.getKeyCode() == KeyEvent.VK_RIGHT)

x = x + 20;

if (e.getKeyCode() == KeyEvent.VK_LEFT)

x = x - 20;

temp.setLocation(x, y);

}

}

Java Swing初学,JFrame中的JLabel等元素紧靠边界,这个距离怎么写?

先要新建一个JPanel主面板,然后设置边距

jPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); // 设置边距

具体实例

import java.awt.GridLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import javax.swing.border.EmptyBorder;

public class JPanelTest {

    public static void main(String[] args) {

        JFrame jFrame=new JFrame("JPanel面板测试");

        JPanel jPanel=new JPanel();

        jPanel.setLayout(new GridLayout(3, 2, 10, 10));

        jPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); // 设置边距

        jFrame.add(jPanel);

        

        JLabel jl1=new JLabel("用户名:");

        JTextField jtf=new JTextField();

        JLabel jl2=new JLabel("密码:");

        JPasswordField jpf=new JPasswordField();

        JButton jb1=new JButton("登陆");

        JButton jb2=new JButton("重置");

        jPanel.add(jl1);

        jPanel.add(jtf);

        jPanel.add(jl2);

        jPanel.add(jpf);

        jPanel.add(jb1);

        jPanel.add(jb2);

        

        jFrame.setLocation(400, 200);

        jFrame.setSize(250, 150);

        jFrame.setVisible(true);

        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}

运行效果图

Java的Swing入门,继承JFrame报错问题

应该是你环境变量配置的问题,先确认下环境变量是否正确,如果还有问题再看看下面的解决办法:Eclipse 默认把这些受访问限制的API设成了ERROR。只要把Windows-Preferences-Java-Complicer- Errors/Warnings里面的Deprecated and restricted API中的Forbidden references(access rules)选为Warning就可以编译通过。

JAVA初学者:swing是什么

看看这个就知道了

Java应用程序用户界面开发包

Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event

用Swing创建图形界面步骤:

(1)导入Swing包

(2)选择界面风格

(3)设置顶层容器

(4)设置按钮和标签

(5)将组件放到容器上

(6)为组件增加边框

(7)处理事件

(8)辅助技术支持

1。导入Swing包

下面语句导入Swing包

import javax.swing.*;

大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包:

import java.awt.*;

import java.awt.event.*;

如果图形界面中包括了事件处理,那么还需要导入事件处理包:

import javax.swing.event.*;

2.选择界面风格

Swing允许选择程序的图形界面风格常用的有java风格,windows风格等

下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。

try { UIManager.setLookAndFeel(

UIManager.getCrossPlatformLookAndFeelClassName( )); }

catch (Exception e) { }

(3) 设置顶层容器

图形界面至少要有一个顶级Swing容器

顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持

常用的顶级容器:

JFrame(框架):表示主程序窗口

JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口

JApplet(小程序):在浏览器内显示一个小程序界面

一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格

窗格也可以看作是一种面板,但它是框架的一个组成部分

组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上

用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板

public static void main(String[ ]args){JFrame frame=new JFrame("SwingApplication");

JPanel panel1=new JPanel();

frame.getContentPane().add(panel1,BorderLayout.CENTER);

......//添加其他组件

frame.pack();frame.setVisible(true);}

java中的swing用法

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Scanner;

import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class TestRegister extends JDialog {

// setup the variable

String name="";

String password="";

JLabel nameL,passwordL;

JTextField nameArea;

JPasswordField passwordArea;

JButton register,login,cancel;

ArrayList User userData = new ArrayList User();

public static void main(String[] args) {

TestRegister test = new TestRegister();

test.setupLayout();

}

public void setupLayout(){

this.setBounds(300, 200,280,120);

this.setTitle("Register");

this.setResizable(false);

this.setModal(true);

setupTypeArea();

this.getData();

this.setVisible(true);

}

public void setupTypeArea(){

JPanel typeArea = new JPanel();

typeArea.setLayout(new FlowLayout());

nameL = new JLabel("name: ");

passwordL = new JLabel("password: ");

nameArea = new JTextField(15);

passwordArea = new JPasswordField(15);

typeArea.add(nameL);

typeArea.add(nameArea);

typeArea.add(passwordL);

typeArea.add(passwordArea);

this.add(typeArea);

JPanel buttonArea = new JPanel();

register = this.addButton("Register", buttonArea);

login = this.addButton("Login", buttonArea);

cancel = this.addButton("Cancel", buttonArea);

this.add(buttonArea,BorderLayout.SOUTH);

}

public JButton addButton(String name,JPanel panel){

JButton temp = new JButton(name);

temp.addActionListener(new ButtonMonitor());

panel.add(temp);

return temp;

}

public void showMessage(String m){

JOptionPane.showMessageDialog(this, m);

}

public void getData(){

try {

Scanner input = new Scanner(new FileReader("D:/data.txt"));

while(input.hasNextLine()){

this.addUser(input.nextLine());

}

} catch (FileNotFoundException e) {

return;

}

}

public void addUser(String data){

String [] s = data.split(" ");

String name = s[0];

String password = s[1];

userData.add(new User(name,password));

}

public void updateData(){

try {

FileWriter saver = new FileWriter("D:/data.txt");

String data = "";

for(int i=0; iuserData.size();i++){

data += userData.get(i).toString()+"\n";

}

saver.write(data);

saver.close();

} catch (IOException e) {

return;

}

}

public void doRegister(){

String name = nameArea.getText();

String password = passwordArea.getText();

if(!name.isEmpty()!password.isEmpty()){

for(int i=0;iuserData.size();i++){

if(name.equals(userData.get(i).getName())){

String m = "这个用户名已经注册!!";

this.showMessage(m);

doCancel();

return;

}

}

userData.add(new User(name,password));

updateData();

doCancel();

}

else{

String m="用户名或者密码是空!!!";

this.showMessage(m);

doCancel();

}

}

public void doLogin(){

String name = nameArea.getText();

String password = passwordArea.getText();

for(int i=0;iuserData.size();i++){

if(name.equals(userData.get(i).getName())password.equals(userData.get(i).getPassword())){

String m = "登陆成功";

this.showMessage(m);

this.doCancel();

return;

}

}

String m ="用户名和密码不匹配!!";

this.showMessage(m);

this.doCancel();

}

public void doCancel(){

nameArea.setText("");

passwordArea.setText("");

}

class ButtonMonitor implements ActionListener{

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals("Register")){

doRegister();

}else if(e.getActionCommand().equals("Login")){

doLogin();

}else if(e.getActionCommand().equals("Cancel")){

doCancel();

}

}

}

class User{

String name;

String password;

public User(String name, String password) {

this.name = name;

this.password = password;

}

public String getName() {

return name;

}

public String getPassword() {

return password;

}

public String toString(){

return name+" "+password;

}

}

}

给你随便写了一下。。。简单登陆用的话用JDialog就够了不必要用JFrame

其实最好是用数据库

关于javaswing入门和Java Swing的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-26,除非注明,否则均为首码项目网原创文章,转载请注明出处。