javaGUI与Swing

1、  Java现在有了两套GUI(图形用户界面)类库,即最初的AWT和一套被称为Java基础类或Swing的新型GUI

2、  AWT构建在所属平台本地图形系统的基础之上。缺点:

1)      由于AWT在不同的操作系统上使用的组件不同,因此只能使用这些组件公共的功能。

2)      AWT下很难创建就JavaBean之类的自定义组件,因为必须为运行JVM的每种操作系统都编写相应的组件。在AWT中没有中间件。

3)      每种图形子系统支持的对象不同,而且每种对象提供的功能也不同。

3、  Swing实际上是两种互补产品的合二为一,一方面,Swing像是AWT的一种重构版;另一方面,Swing又是JvaGUI类的下一逻辑版本。

4、  Swing组件以模型、视图和控制器(MVC)的设计模式为基础构建而成。

5、  Swing的步骤:

1)      建立容器;

2)      建立组件;

3)      将组件添加到容器;

4)      设置布局。

6、  容器类就是容纳其他图形对象的类。主要的容器类有:

1)      Japplet:种在游览器中运行的Java的容器。

2)      JFame:带有标题和边框的顶级窗口。

3)      JpanelPanel就是一个矩形区域,其中可以附加其他的组件,包括其他的Panel上。

4)      JScrollPANE:这是一种可以自动实现水平和垂直流动条的Panel类。

5)      Jdialog:一种弹出窗口。

7、  Jframe类是创建Swing程序时最常用的容器。即使是在创建JpanelJscrollPane时,通常也会把这些类放在Jframe中来显示。

8、  所有的Swing组件都继承了javax.swing.JComponent的功能。该Jcomponent类实际上派生自java.awt.Container类。

9、  Javax.swing.Jpanel类是一个普通的矩形容器,但是缺少Jframe的标题和边框。它的默认行为是实现从左到右放置添加的组件,并且提供包装和双倍缓冲区。

 

10、  JscrollPane最吸引人的地方是具有可选的垂直滚动条和水平滚动条。

12、  JTextField是一种包含单行文本数据项的组件。

13、  JRadioButton类用于单选按钮,该类实例生成动作和项目事件。

14、  JcomboBox类用于组合框,包含一个下拉列表。

15、  Jlist类用于显示项目列表。

16、  可选用的布局管理器有:BorderLayoutFlowLayoutCardLayoutGirdLayout

    1)BorderLayoutJframe容器的默认布局管理器,称为边界布局管理器。它将组件放置在东、南、西、北、中五个区域中。一般是先创建Panel对象并放入按钮和文本字段之类的GUI对象。接下来,把这些Panel对象放在布局管理器的某个区域中去。中间的最大(权利最大)。

    2)FlowLayout称为流布局管理器,是所有布局管理器中最简单的。当组件放入容器 时,会被按照从左至右,从上往下的方式安置(默认是中容器中间开始)。

    3)GirdLayout称为网格布局管理器,它把容器划分为网格,以便可以再行和列中放置组件。GirdLayout中的每一个组件都由相同的宽度和高度。

    4)CardLayout称为卡片布局管理器,它将容器中的每个组件看做一张卡片,一次只能看到一张卡片。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的使用Java Swing开发的输入法示例代码: ```java import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class InputMethod extends JFrame { private static final long serialVersionUID = 1L; private JTextArea textArea; private JTextField textField; public InputMethod() { setTitle("Input Method"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); textArea = new JTextArea(); textField = new JTextField(); JButton button1 = new JButton("1"); JButton button2 = new JButton("2"); JButton button3 = new JButton("3"); JButton button4 = new JButton("4"); JButton button5 = new JButton("5"); JButton button6 = new JButton("6"); JButton button7 = new JButton("7"); JButton button8 = new JButton("8"); JButton button9 = new JButton("9"); JButton button0 = new JButton("0"); JButton buttonQ = new JButton("Q"); JButton buttonW = new JButton("W"); JButton buttonE = new JButton("E"); JButton buttonR = new JButton("R"); JButton buttonT = new JButton("T"); JButton buttonY = new JButton("Y"); JButton buttonU = new JButton("U"); JButton buttonI = new JButton("I"); JButton buttonO = new JButton("O"); JButton buttonP = new JButton("P"); JButton buttonA = new JButton("A"); JButton buttonS = new JButton("S"); JButton buttonD = new JButton("D"); JButton buttonF = new JButton("F"); JButton buttonG = new JButton("G"); JButton buttonH = new JButton("H"); JButton buttonJ = new JButton("J"); JButton buttonK = new JButton("K"); JButton buttonL = new JButton("L"); JButton buttonZ = new JButton("Z"); JButton buttonX = new JButton("X"); JButton buttonC = new JButton("C"); JButton buttonV = new JButton("V"); JButton buttonB = new JButton("B"); JButton buttonN = new JButton("N"); JButton buttonM = new JButton("M"); JButton buttonSpace = new JButton("Space"); JButton buttonEnter = new JButton("Enter"); JPanel panel1 = new JPanel(new GridLayout(4, 10)); panel1.add(button1); panel1.add(button2); panel1.add(button3); panel1.add(button4); panel1.add(button5); panel1.add(button6); panel1.add(button7); panel1.add(button8); panel1.add(button9); panel1.add(button0); panel1.add(buttonQ); panel1.add(buttonW); panel1.add(buttonE); panel1.add(buttonR); panel1.add(buttonT); panel1.add(buttonY); panel1.add(buttonU); panel1.add(buttonI); panel1.add(buttonO); panel1.add(buttonP); panel1.add(buttonA); panel1.add(buttonS); panel1.add(buttonD); panel1.add(buttonF); panel1.add(buttonG); panel1.add(buttonH); panel1.add(buttonJ); panel1.add(buttonK); panel1.add(buttonL); panel1.add(buttonZ); panel1.add(buttonX); panel1.add(buttonC); panel1.add(buttonV); panel1.add(buttonB); panel1.add(buttonN); panel1.add(buttonM); panel1.add(buttonSpace); panel1.add(buttonEnter); JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(textArea, BorderLayout.CENTER); panel2.add(textField, BorderLayout.SOUTH); add(panel1, BorderLayout.CENTER); add(panel2, BorderLayout.SOUTH); ActionListener buttonListener = new ActionListener() { public void actionPerformed(ActionEvent e) { String input = textField.getText(); JButton button = (JButton) e.getSource(); String text = button.getText(); if ("Space".equals(text)) { input += " "; } else if ("Enter".equals(text)) { textArea.append(input + "\n"); input = ""; } else { input += text.toLowerCase(); } textField.setText(input); } }; button1.addActionListener(buttonListener); button2.addActionListener(buttonListener); button3.addActionListener(buttonListener); button4.addActionListener(buttonListener); button5.addActionListener(buttonListener); button6.addActionListener(buttonListener); button7.addActionListener(buttonListener); button8.addActionListener(buttonListener); button9.addActionListener(buttonListener); button0.addActionListener(buttonListener); buttonQ.addActionListener(buttonListener); buttonW.addActionListener(buttonListener); buttonE.addActionListener(buttonListener); buttonR.addActionListener(buttonListener); buttonT.addActionListener(buttonListener); buttonY.addActionListener(buttonListener); buttonU.addActionListener(buttonListener); buttonI.addActionListener(buttonListener); buttonO.addActionListener(buttonListener); buttonP.addActionListener(buttonListener); buttonA.addActionListener(buttonListener); buttonS.addActionListener(buttonListener); buttonD.addActionListener(buttonListener); buttonF.addActionListener(buttonListener); buttonG.addActionListener(buttonListener); buttonH.addActionListener(buttonListener); buttonJ.addActionListener(buttonListener); buttonK.addActionListener(buttonListener); buttonL.addActionListener(buttonListener); buttonZ.addActionListener(buttonListener); buttonX.addActionListener(buttonListener); buttonC.addActionListener(buttonListener); buttonV.addActionListener(buttonListener); buttonB.addActionListener(buttonListener); buttonN.addActionListener(buttonListener); buttonM.addActionListener(buttonListener); buttonSpace.addActionListener(buttonListener); buttonEnter.addActionListener(buttonListener); pack(); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new InputMethod(); } } ``` 该输入法界面包括一个文本框和一个文本区域,用户可以通过点击按钮来输入字符并将其显示在文本框中。当用户点击“Enter”按钮时,输入的文本将被添加到文本区域中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值