您的位置:首页 > 编程语言 > Java开发

Java界面程序与用户交互

2014-07-12 16:19 253 查看


用户交互:

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 等

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐