编写java程序,创建一个框架并将其布局管理其设置为FlowLayot,添加两个面板,每个面板包含三个按钮

编写java程序,创建一个框架并将其布局管理其设置为FlowLayot,添加两个面板,每个面板包含三个按钮,第1张

lz 你好

具体代码如下:

import java.awt.*

import javax.swing.*

public class Test extends JFrame{

private JPanel panel_1,panel_2

private JButton[] button_1,button_2

public Test(){

super("Test")

button_1 = new JButton[3]

button_2 = new JButton[3]

panel_1  = new JPanel(new GridLayout(3,2))

panel_2  = new JPanel(new GridLayout(3,2))

for (int i = 0 i < 3 i++) {

button_1[i] = new JButton("Panel_1:"+(i+1))

button_2[i] = new JButton("Panel_2:"+(i+4))

panel_1.add(button_1[i])

panel_2.add(button_2[i])

}

setLayout(new FlowLayout(FlowLayout.CENTER,5,30))

getContentPane().add(panel_1)

getContentPane().add(panel_2)

setLocation(400,150)

setSize(200,300)

setVisible(true)

setDefaultCloseOperation(3)

}

    public static void main(String[] args) {

     new Test()

    }

}

希望能帮助你哈

JAVA框架主流的有以下四款:

Struts1框架是apache公司的开源子项目,是基于mvc逻辑分层的web层框架实现。是出现最早的web层框架,应用最广发。Struts1框架重点关注的是控制层,对于视图层只是提供了大量的标签对于model层的影响微乎其微。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来 *** 纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

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

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

//注意:

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

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

//参考代码

下面使用Swing组件来实现

import java.awt.*

import java.awt.event.*

import javax.swing.*

//本类实现了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(FlowLayout.CENTER))// 流式布局

jtf1 = new JTextField(8)

jtf1.addFocusListener(this)// 添加焦点响应

JLabel jl = new JLabel("+")

jtf2 = new JTextField(8)

jtf2.addFocusListener(this)

jb1 = new JButton("=")

jb1.addActionListener(this)// 添加动作响应

jb1.addFocusListener(this)// 添加焦点响应

jtf3 = new JTextField(8)

jtf3.setEditable(false)

jp.add(jtf1)

jp.add(jl)

jp.add(jtf2)

jp.add(jb1)

jp.add(jtf3)

getContentPane().add(jp, BorderLayout.CENTER)

}

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

JMenuBar jmb = new JMenuBar()

JMenu jm1 = new JMenu("系统")

JMenuItem jmi101 = new JMenuItem("退出")

jmi101.addActionListener(this)// 添加动作响应

JMenu jm2 = new JMenu("帮助")

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

jmi201.addActionListener(this)

jm1.add(jmi101)

jm2.add(jmi201)

jmb.add(jm1)

jmb.add(jm2)

setJMenuBar(jmb)//设置菜单栏

}

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

public static void main(String[] args) {

new MyGuiFrame().setVisible(true)

}

// 动作响应处理

public void actionPerformed(ActionEvent e) {

String cmd = e.getActionCommand()//根据命令来区分不同的 *** 作

if (cmd.equals("退出")) {

System.exit(0)

}

if (cmd.equals("功能说明")) {

JOptionPane.showMessageDialog(this, "加法")

}

if (cmd.equals("=")) {

String s1 = jtf1.getText().trim()

String s2 = jtf2.getText().trim()

if(s1.equals("")){

s1="0"

}

if(s2.equals("")){

s2="0"

}

double num1 = Double.parseDouble(s1)//从字符串转小数

double num2 = Double.parseDouble(s2)

jtf3.setText((num1 + num2) + "")// 数字类型转字符串类型

}

}

// 焦点响应处理

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

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

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

cmp.setBorder(BorderFactory.createLineBorder(Color.BLUE))// 设置边框

}

if (cmp == jb1) {

jb1.setForeground(Color.RED)//设置文字颜色

}

}

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

JComponent cmp = (JComponent) e.getComponent()

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

cmp.setBorder(BorderFactory.createLineBorder(Color.GRAY))

}

if (cmp == jb1) {

jb1.setForeground(Color.BLACK)

}

}

}

运行效果如图


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

原文地址: http://outofmemory.cn/yw/11785478.html

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

发表评论

登录后才能评论

评论列表(0条)

保存