java编程中,GUI界面的一般框架有什么希望大神给写个程序实例,程序内容包括布局的应用,多个

java编程中,GUI界面的一般框架有什么希望大神给写个程序实例,程序内容包括布局的应用,多个,第1张

java   GUI一般,通过AWT,SWING 实现

其余比较流行的是SWT,但是它不是官方库, 并且不能跨平台

//注意:

Swing, 所以很多不涉及界面组件的一些类比如布局 等Swing也可以使用

但是组件,最好不要混用, 容易出现一些组件叠加,等显示错误 比如JButton TextField等混用

//参考代码

下面使用Swing组件来实现

import javaawt;

import javaawtevent;

import javaxswing;

//本类实现了ActionListener接口 一个ActionListener可以响应JMenuItem 和JButton的动作

//本类实现FocusListener接口,一个FocusListener可以响应JTextField,JButton等

//JButton响应多个事件接口

public class MyGuiFrame extends JFrame implements ActionListener, FocusListener {

private JTextField jtf1;

private JTextField jtf2;

private JTextField jtf3;

private JButton jb1;

public MyGuiFrame() {

// ----------窗口属性的设置----------

setTitle("窗口应用程序");// 窗口标题

setSize(380, 120);// 窗口大小

setLocationRelativeTo(null);// 窗口居于屏幕中央

setDefaultCloseOperation(EXIT_ON_CLOSE);// 点击关闭窗口后退出jvm虚拟机

getContentPane()setLayout(new BorderLayout(5, 3));// 边界布局,水平间距5,垂直间距3

// 菜单栏组件初始化

initMenu();

// 主要面板的初始化

initPanel();

}

private void initPanel() {

JPanel jp = new JPanel(new FlowLayout(FlowLayoutCENTER));// 流式布局

jtf1 = new JTextField(8);

jtf1addFocusListener(this);// 添加焦点响应

JLabel jl = new JLabel("+");

jtf2 = new JTextField(8);

jtf2addFocusListener(this);

jb1 = new JButton("=");

jb1addActionListener(this);// 添加动作响应

jb1addFocusListener(this);// 添加焦点响应

jtf3 = new JTextField(8);

jtf3setEditable(false);

jpadd(jtf1);

jpadd(jl);

jpadd(jtf2);

jpadd(jb1);

jpadd(jtf3);

getContentPane()add(jp, BorderLayoutCENTER);

}

private void initMenu() {// 菜单栏的初始化和 设置

JMenuBar jmb = new JMenuBar();

JMenu jm1 = new JMenu("系统");

JMenuItem jmi101 = new JMenuItem("退出");

jmi101addActionListener(this);// 添加动作响应

JMenu jm2 = new JMenu("帮助");

JMenuItem jmi201 = new JMenuItem("功能说明");

jmi201addActionListener(this);

jm1add(jmi101);

jm2add(jmi201);

jmbadd(jm1);

jmbadd(jm2);

setJMenuBar(jmb);//设置菜单栏

}

// main方法, 创建对象窗口, 并且设置可见

public static void main(String[] args) {

new MyGuiFrame()setVisible(true);

}

// 动作响应处理

public void actionPerformed(ActionEvent e) {

String cmd = egetActionCommand();//根据命令来区分不同的 *** 作

if (cmdequals("退出")) {

Systemexit(0);

}

if (cmdequals("功能说明")) {

JOptionPaneshowMessageDialog(this, "加法");

}

if (cmdequals("=")) {

String s1 = jtf1getText()trim();

String s2 = jtf2getText()trim();

if(s1equals("")){

s1="0";

}

if(s2equals("")){

s2="0";

}

double num1 = DoubleparseDouble(s1);//从字符串转小数

double num2 = DoubleparseDouble(s2);

jtf3setText((num1 + num2) + "");// 数字类型转字符串类型

}

}

// 焦点响应处理

public void focusGained(FocusEvent e) {//获得焦点

JComponent cmp = (JComponent) egetComponent();//根据事件来源组件来区分不同的 *** 作

if (cmp == jtf1 || cmp == jtf2) {

cmpsetBorder(BorderFactorycreateLineBorder(ColorBLUE));// 设置边框

}

if (cmp == jb1) {

jb1setForeground(ColorRED);//设置文字颜色

}

}

public void focusLost(FocusEvent e) {//失去焦点

JComponent cmp = (JComponent) egetComponent();

if (cmp == jtf1 || cmp == jtf2) {

cmpsetBorder(BorderFactorycreateLineBorder(ColorGRAY));

}

if (cmp == jb1) {

jb1setForeground(ColorBLACK);

}

}

}

运行效果如图

是因为你的代码在生成窗口时获取的窗口尺寸(很多例子是背景大小来设定,如果加载失效则尺寸就为0,接着就会出现你说的情况。),人为修改宽和高在打包试试看。自己亲测有效,找到原因才能有解决办法。

以上就是关于java编程中,GUI界面的一般框架有什么希望大神给写个程序实例,程序内容包括布局的应用,多个全部的内容,包括:java编程中,GUI界面的一般框架有什么希望大神给写个程序实例,程序内容包括布局的应用,多个、java桌面程序打包jar可执行文件,双击打开d出窗口最小化、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9692793.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存