Java界面程序与用户交互



用户交互:

 JOptionPane

 
    消息对话框
    showMessageDialog
    确认对话框
     showConfirmDialog   返回整型
    输入对话框
     showInputDialog   //用户输入  返回字符串 可用Interger.parseInterger等转化为其他类型

  例程:

import javax.swing.JOptionPane;

public class JavaApp {
 public static void main(String[] args) {
  //弹出消息对话框
  JOptionPane.showMessageDialog(null, "hello world !");
  //弹出确认对话框
  int  option=JOptionPane.showConfirmDialog(null, "1+1=2?");
  if(option==JOptionPane.YES_OPTION)
   System.out.println("你选择的是Yes");
  else
   System.out.println("你选择的是No");
  String name=JOptionPane.showInputDialog("请输入你的名字:");
  int    age =Integer.parseInt(JOptionPane.showInputDialog("请输入你的年龄:"));
  JOptionPane.showMessageDialog(null, "你好,"+name+"\n你今年"+age+"岁了");
 }
}


构建界面程序: JFrame 


  步骤:


         创建窗口对象    new JFrame
         设置布局        setLayout 
         添加组件        add
         设置事件监听    addActionListener  内部类 implements ActionListener重写actionPerformed方法


  辅助窗体设置:


          设置位置          setLoction  //不设默认(0,0)
          设置大小          setSize     //设置宽和高
          设置可见性        setVisable  //必须为true才可见
          设置是否固定窗口  setResizable
          设置默认关闭操作  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)


布局管理器:默认为BorderLayout


    BorderLayout  边框式布局 将整个容器划分成东南西北中五个方位来放置控件
    FlowLayout  流动式布局   按照顺序一个接一个由左向右的水平放置在容器中
    GridLayout    网格式布局 将整个容器划分成一定的行和一定的列
    BoxLayout     箱式式布局 可以指定在容器中是否对控件进行水平或者垂直放置
    GridBagLayout 网格包布局 一种更强大更灵活的布局方式
构建相应代码:


    窗口程序: 

  import java.awt.BorderLayout;
  import javax.swing.JButton;
  import javax.swing.JFrame;
  public class JFrameLayout {
      public static void main(String[] args) {
  JFrame jFrame=new JFrame("Hello World");
 
  jFrame.setLocation(100, 100);
  jFrame.setSize(200, 200);  //后面的相应改了大小
  jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  jFrame.setVisible(true);
        }
      }



   1、BorderLayout 


    窗口程序里加入代码:

  jFrame.setLayout(new BorderLayout());
  jFrame.add(new JButton("东"),BorderLayout.EAST);
  jFrame.add(new JButton("西"),BorderLayout.WEST);
  jFrame.add(new JButton("南"),BorderLayout.SOUTH);
  jFrame.add(new JButton("北"),BorderLayout.NORTH);
  jFrame.add(new JButton("中"),BorderLayout.CENTER);



      效果如下
          


   
   2、 FloatLayout


 窗口程序里加入代码: 

     jFrame.setLayout(new FlowLayout());
     jFrame.add(new JButton("one"));
     jFrame.add(new JButton("two"));
     jFrame.add(new JButton("three"));
     jFrame.add(new JButton("four"));
     jFrame.add(new JButton("five"));

  效果如下
            


   3、GridLayout


    窗口程序里加入代码:
   jFrame.setLayout(new java.awt.GridLayout(4, 5));
   for(int i=0;i<4;i++)
    for(int j=1;j<=5;j++)
     jFrame.add(new JButton("button"+(5*i+j)));
       效果如下:
        


    4、BoxLayout  和FlowLayout相似,但比FlowLayout更灵活


     JPanel jPanel=new JPanel();
     jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.Y_AXIS));
     jPanel.add(Box.createVerticalStrut(50));
     jPanel.add(new JButton("one"));
     jPanel.add(new JButton("two"));
     jPanel.add(new JButton("three"));
     jPanel.add(new JButton("four"));
     jPanel.add(new JButton("five"));
     jFrame.add(jPanel);


         
       
BoxLayout 往往和 Box 这个容器结合在一起使用,这么做的理由是,BoxLayout 是把控件以水平或者垂直的方向一个接一个的放置,如果要调整这些控件之间的空间,就会需要使用 Box 容器提供的透明的组件作为填充来填充控件之间的空间,从而达到调整控件之间的间隔空间的目的。Box 容器提供了 4 种透明的组件,分别是 rigid area、strut、glue、filler。Box 容器分别提供了不同的方法来创建这些组件。这四个组件的特点如下:
•Rigid area 是一种用户可以定义水平和垂直尺寸的透明组件;
•strut 与 rigid area 类似,但是用户只能定义一个方向的尺寸,即水平方向或者垂直方           向,不能同时定义水平和垂直尺寸;
•当用户将 glue 放在两个控件之间时,它会尽可能的占据两个控件之间的多余空间,从而将两  个控件挤到两边;
•Filler 是 Box 的内部类,它与 rigid area 相似,都可以指定水平或者垂直的尺寸,但是 它可以设置最小,最大和优先尺寸。


5、GridBagLayout  页面布局的一个难点(后面会转载一篇有详细说明的博客)
 
 一般程序不会采用一个布局,而是多个布局的整合,通过JPanel等连接起来
 
常用图形组件:
      JPanel   JButton  JTextArea JPasswordField
      JLable   JCheckBox JRadioButton  JTextField
      JSlider  JComboBox JProgressBar  JScrollPane
      JTable   等

     

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
随着计算机与软件的进步,人机交互越来越需要发展,计算机和用户之间的 接口也越来越具有方便用户的特性,从而制作用户界面系统也越来越复杂和花费 人力,时间。因此为了节省程序设计者的时间,有必要研究界面模板技术。 Java是一种灵活的、跨平台的、彻底地面向对象的程序设计语言。由于Java 具有众多特点是跨平台的优点,采用java编写应用程序界面和web界面越来越流 行。而swing是目前Java中的一个重要的界面工具组类库,是建立GUI的强大工 具,它比起Java的其他界面组件来说具有更多的优点,相信以后用java swing佑U作 的界面的软件和web页面会越来越多,所以研究和设hLjava swing的界面模板有着 非常重要的意义。 本文首先引入和介绍两种设计模式,flpMVC模式和主控模式,并且详细描 述和举例说明]"swing类库与MVC模式之间的关联。然后本文结合国内外现有的 交互用户界面模型的特点,提出了一种基于java/swing和两种设计模式的交互界面的设计思想与具体实现方案。该方案包含用户界面代理,能提供给用户图 形的可视化方式来设计界面的视图,和控制器的设计;这套方案包括了几乎所有 的基本控件,例如对话框,滚动条,分割栏,文本框等的界面生成器;然后以此 方案做了一个示例程序,即利用swing类库和基于前面介绍的设计模式,以按钮 为例创建了一个界面生成器,该按钮生成器能按照用户输入的属性生成具有该属 性的swingYXL格的按钮,并且生成相应的java代码,用户也可以通过代码来改变这 个按钮。也就是说它具有中间件的功能,能将界面内容保存在模板实例中以便修 改及重用,并能根据模板实例生成界面程序源代码。接着讲述了其他swing控件 如编辑框,滚动条,弹出菜单等的做法,由此形成了一个开发swing风格界面的 集成界面模板工具。最后,文章结尾总结了提出和研究设计的这套方案在意义和不足,以及进一步的工作。
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值