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)
}
}
}
运行效果如图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)