GVKun编程网logo

博为峰Java技术文章 ——JavaSE Swing JFileChooser组件Ⅱ(javaswing组件介绍)

11

在本文中,我们将给您介绍关于博为峰Java技术文章——JavaSESwingJFileChooser组件Ⅱ的详细内容,并且为您解答javaswing组件介绍的相关问题,此外,我们还将为您提供关于博为峰

在本文中,我们将给您介绍关于博为峰Java技术文章 ——JavaSE Swing JFileChooser组件Ⅱ的详细内容,并且为您解答javaswing组件介绍的相关问题,此外,我们还将为您提供关于博为峰Java技术文章 ——JavaSE Swing BorderLayout布局管理器、博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器I、博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器II、博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器II的知识。

本文目录一览:

博为峰Java技术文章 ——JavaSE Swing JFileChooser组件Ⅱ(javaswing组件介绍)

博为峰Java技术文章 ——JavaSE Swing JFileChooser组件Ⅱ(javaswing组件介绍)

博为峰小博老师:

JFileChooser代码示例如下:

public class BWF implements ActionListener{

JFrame f=null;

JLabel label=null;

JTextArea textArea=null;

JFileChooser fileChooser;

public BWF() {

f=new JFrame("博为峰教育");

Container contentPane=f.getContentPane();

textArea=new JTextArea();

JScrollPane scrollPane=new JScrollPane(textArea);

scrollPane.setPreferredSize(new Dimension(350, 300));

JPanel panel=new JPanel();

JButton b1=new JButton("新建文件");

b1.addActionListener(this);

JButton b2=new JButton("退出文件");

b2.addActionListener(this);

panel.add(b1);

panel.add(b2);

label=new JLabel("",JLabel.CENTER);

//建立一个FileChooser对象,指定D盘目录为默认文件对话框路径

fileChooser=new JFileChooser("D:\\");

contentPane.add(label,BorderLayout.NORTH);

contentPane.add(scrollPane,BorderLayout.CENTER);

contentPane.add(panel,BorderLayout.SOUTH);

f.pack();

f.setVisible(true);

f.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

public static void main(String[] args) {

new BWF();

}

@Override

public void actionPerformed(ActionEvent e) {

File file=null;

int result;

if(e.getActionCommand().equals("新建文件")){

fileChooser.setApproveButtonText("确定");

fileChooser.setDialogTitle("打开文件");

result=fileChooser.showOpenDialog(f);

textArea.setText("");

if(result==JFileChooser.APPROVE_OPTION){

file=fileChooser.getSelectedFile();

label.setText("你打开的文件名为:"+file.getName());

}

else if(result==JFileChooser.CANCEL_OPTION){

label.setText("你没有选择任何文件");

}

FileInputStream fileInputStream=null;

if(file!=null){

try{

fileInputStream=new FileInputStream(file);

}catch(Exception e1){

label.setText("没找到文件");

return;

}

String readbyte=null;

try{

BufferedReader br = new BufferedReader(new InputStreamReader(fileInputStream));

while((readbyte=br.readLine())!=null){

textArea.setLineWrap(true);

textArea.append(String.valueOf(readbyte));

}

}catch(Exception e1){

label.setText("读取文件错误");

}finally {

try{

if(fileInputStream!=null){

fileInputStream.close();

}

}catch(Exception e1){

}

}

}

}

}

}

 

 

博为峰Java技术文章 ——JavaSE Swing BorderLayout布局管理器

博为峰Java技术文章 ——JavaSE Swing BorderLayout布局管理器

博为峰小博老师:

BorderLayout是一种简单的布局策略,在使用这个布局管理器的时候,应该将其看作是一个组件,所以,首先应通过构造器创建布局管理器对象,再通过引用其中的方法和变量来对组件进行布局。下图列举出BorderLayout布局管理器的构造器。

布局管理器把容器分为东、南、西、北、中5个区域,每个组件将占据某个区域。而这5个区域分别被命名为NORTH, WEST, EAST, CENTER, SOUTH,它们都被定义为静态常量,静态常量可以直接引用。这种布局管理器所定义的5个静态常量的说明如下所示。

博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器I

博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器I

博为峰小博老师:

箱式布局比较灵活,也比较实用。Swing提供的BOX类就是箱式布局类,它的默认布局管理器就是BoxLayout,在箱式布局管理器中包括两种箱子:一种是水平箱,另外一种是垂直箱。

创建一个水平箱的源代码如下:

创建一个垂直箱的源代码如下:

创建好箱子后,就可以像添加其他组件一样添加下面的控件,源代码如下:

两种箱子的区别在于组件的排列顺序,水平箱是按照从左到右的顺序排列,而垂直箱按照从上到下的顺序排列。对于箱式布局管理器而言,最关键的就是每个组件的3个尺寸。

l 首选尺寸,即组件显示时的宽度和高度。

l 最大尺寸,即组件能被显示的最大宽度和高度。

l 最小尺寸,即组件被显示的最小高度和最小宽度。

下面是水平箱式布局管理器中组件排列的几个重点:

l 计算最高组件的最大高度,尝试把所有的组件都增加到这个高度。如果有某些组件不能达到此高度,那么要在Y轴上对齐需要通过getAlignmentY方法实现,该方法返回一个介于0(按顶部对齐)和1(按底部对齐)之间的浮点数。组件的默认值是0.5,也就是中线对齐。

l 得到每个组件的首选宽度,然后把所有的首选宽度合计起来。

l 如果首选宽度总和小于箱的宽度,那么所有的组件都会相应的延伸,直到适应这个箱子的宽度。组件从左到右排列,并且相邻两个组件之间没有多余的空格。

博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器II

博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器II

博为峰小博老师:

箱式布局组件之间没有空隙,那么就要通过一个称为填充物的组件来提供空隙。箱式布局管理器提供了3种填充物:支柱、固定区、弹簧。下面将通过实例来介绍如何使用箱式布局管理器布局。

public class BWF{

public static int WIDTH=200;

public static int HEIGHT=150;

public static void main(String args[]){

JFrame jf=new JFrame("测试箱式布局管理器");

jf.setSize(WIDTHHEIGHT);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel contentPane=new JPanel();

JLabel label1=new JLabel(" 姓名:");//创建标签组件,文本框组件

JTextField textField=new JTextField(10);

textField.setMaximumSize(textField.getPreferredSize());

Box hbox1=Box.createHorizontalBox();//创建一个水平箱子

hbox1.add(label1);

//在水平箱子上添加一个标签组件,并且创建一个不可见的20个单位的组件

//在这之后再添加一个文本组件

hbox1.add(Box.createHorizontalStrut(20));

hbox1.add(textField);

JLabel label2=new JLabel(" 年龄:");//创建标签组件,文本框组件

JTextField textField2=new JTextField(10);

textField.setMaximumSize(textField2.getPreferredSize());

Box hbox2=Box.createHorizontalBox();//创建一个水平箱子

hbox2.add(label2);

//在水平箱子上添加一个标签组件,并且创建一个不可见的20个单位的组件

//在这之后再添加一个文本组件

hbox2.add(Box.createHorizontalStrut(20));

hbox2.add(textField2);

JButton button1=new JButton("确定");

JButton button2=new JButton("取消");

Box hbox3=Box.createHorizontalBox();

hbox3.add(button1);

hbox3.add(Box.createHorizontalStrut(20));

hbox3.add(button2);

Box vbox=Box.createVerticalBox();

vbox.add(hbox1);

vbox.add(Box.createVerticalStrut(10));

vbox.add(hbox2);

vbox.add(Box.createVerticalStrut(20));

vbox.add(hbox3);

//垂直箱子添加到BorderLayout布局管理器中的中间位置

contentPane.add(vbox,BorderLayout.CENTER);

jf.setContentPane(contentPane);

jf.setVisible(true);

}

}

博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器II

博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器II

博为峰小博老师:

FlowLayout容器中组件都是依次排列的,没有像BorderLayout布局管理器一样有5个不同的方位。下面将BorderLayout布局管理器和FlowLayout布局管理器结合在一起列举一个实例。此实例的思路是将FlowLayout布局管理器同顶层容器关联,然后在其中添加5个BorderLayout布局管理器,并在这5个布局管理器中添加组件。其代码如下所示:

public class BWF {

public static int width=1000;

public static int height=130;

public static void main(String args[]){

JFrame jf=new JFrame("FlowLayout实例");

jf.setSize(widthheight);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jf.setVisible(true);

JPanel contentPane=new JPanel();

jf.setContentPane(contentPane);

contentPane.setLayout(new FlowLayout());//将中间容器的布局管理器设置为FlowLayout

JPanel p1=new JPanel();

JPanel p2=new JPanel();

JPanel p3=new JPanel();

JPanel p4=new JPanel();

JPanel p5=new JPanel();

contentPane.add(p1);//将5个面板按照FlowLayout布局方式添加到中间容器中

contentPane.add(p2);

contentPane.add(p3);

contentPane.add(p4);

contentPane.add(p5);

JButton b1=new JButton("港元");//创建25个普通按钮组件

JButton b2=new JButton("人民币");

JButton b3=new JButton("美元");

JButton b4=new JButton("欧元");

JButton b5=new JButton("英镑");

JButton b6=new JButton("主板");

JButton b7=new JButton("内存条");

JButton b8=new JButton("鼠标");

JButton b9=new JButton("显示器");

JButton b10=new JButton("键盘");

JButton b11=new JButton("大米");

JButton b12=new JButton("蔬菜");

JButton b13=new JButton("牛肉");

JButton b14=new JButton("鸡肉");

JButton b15=new JButton("茄子");

JButton b16=new JButton("面包");

JButton b17=new JButton("蛋糕");

JButton b18=new JButton("苹果派");

JButton b19=new JButton("巧克力");

JButton b20=new JButton("果冻");

JButton b21=new JButton("文件夹");

JButton b22=new JButton("涂改液");

JButton b23=new JButton("铅笔");

JButton b24=new JButton("办公桌");

JButton b25=new JButton("钢笔");

p1.setLayout(new BorderLayout());//将p1面板设置为BorderLayout

p1.add(b1,BorderLayout.WEST);//将1-5普通按钮添加到p1面板中

p1.add(b2,BorderLayout.SOUTH);

p1.add(b3,BorderLayout.EAST);

p1.add(b4,BorderLayout.NORTH);

p1.add(b5,BorderLayout.CENTER);

p2.setLayout(new BorderLayout());

p2.add(b6,BorderLayout.WEST);//将6-10普通按钮添加到p2面板中

p2.add(b7,BorderLayout.SOUTH);

p2.add(b8,BorderLayout.EAST);

p2.add(b9,BorderLayout.NORTH);

p2.add(b10,BorderLayout.CENTER);

p3.setLayout(new BorderLayout());

p3.add(b11,BorderLayout.WEST);//将11-15普通按钮添加到p3面板中

p3.add(b12,BorderLayout.SOUTH);

p3.add(b13,BorderLayout.EAST);

p3.add(b14,BorderLayout.NORTH);

p3.add(b15,BorderLayout.CENTER);

p4.setLayout(new BorderLayout());

p4.add(b16,BorderLayout.WEST);//将16-20普通按钮添加到p4面板中

p4.add(b17,BorderLayout.SOUTH);

p4.add(b18,BorderLayout.EAST);

p4.add(b19,BorderLayout.NORTH);

p4.add(b20,BorderLayout.CENTER);

p5.setLayout(new BorderLayout());

p5.add(b21,BorderLayout.WEST);//将21-25普通按钮添加到p5面板中

p5.add(b22,BorderLayout.SOUTH);

p5.add(b23,BorderLayout.EAST);

p5.add(b24,BorderLayout.NORTH);

p5.add(b25,BorderLayout.CENTER);

}

}


 

 

关于博为峰Java技术文章 ——JavaSE Swing JFileChooser组件Ⅱjavaswing组件介绍的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于博为峰Java技术文章 ——JavaSE Swing BorderLayout布局管理器、博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器I、博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器II、博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器II的相关知识,请在本站寻找。

本文标签: