Swing之Gridbaglayout使用以及通过反射技术验证属性表框实例

来源:互联网 发布:美工刀片什么牌子好 编辑:程序博客网 时间:2024/06/01 10:30

1

代码较简单,gridbaglayout只 是用了很简单的两个属性,防止多个属性让人混乱,反射技术很强大,把代码彻底写活,灵活而省工作量

package com.szsm.swing.framepanel;import java.awt.BorderLayout;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.lang.reflect.Field;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import com.szsm.swing.parent.FrameSet;public class GridFrame extends FrameSet {JTextField field;JTextField field2;public GridFrame() {}@Overrideprotected void initInterface() {super.initInterface();JPanel panel = new JPanel();GridBagLayout layout = new GridBagLayout();panel.setLayout(layout);parentContainer.add(panel, BorderLayout.CENTER);JLabel label = new JLabel("姓名:");GridBagConstraints constraintNameLabel = new GridBagConstraints();constraintNameLabel.gridx = 0;constraintNameLabel.gridy = 0;panel.add(label, constraintNameLabel);field = new JTextField();field.setName("姓名");field.setColumns(20);GridBagConstraints constraintNameField = new GridBagConstraints();constraintNameField.gridx = 1;constraintNameField.gridy = 0;panel.add(field, constraintNameField);JLabel label2 = new JLabel("姓名2:");GridBagConstraints constraintNameLabel2 = new GridBagConstraints();constraintNameLabel2.gridx = 0;constraintNameLabel2.gridy = 1;panel.add(label2, constraintNameLabel2);field2 = new JTextField();field2.setName("姓名:");field2.setColumns(20);GridBagConstraints constraintNameField2 = new GridBagConstraints();constraintNameField2.gridx = 1;constraintNameField2.gridy = 1;panel.add(field2, constraintNameField2);JLabel label3 = new JLabel("姓名2:");GridBagConstraints constraintNameLabel3 = new GridBagConstraints();constraintNameLabel3.gridx = 0;constraintNameLabel3.gridy = 1;panel.add(label3, constraintNameLabel3);JButton field3 = new JButton("使用反射验证是否为空");field3.setName("姓名:");GridBagConstraints constraintNameField3 = new GridBagConstraints();constraintNameField3.gridx = 1;constraintNameField3.gridy = 2;panel.add(field3, constraintNameField3);field3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent event) {Field[] fields = GridFrame.class.getDeclaredFields();for (int i = 0; i < fields.length; i++) {if(fields[i].getType().equals(JTextField.class)){fields[i].setAccessible(true);JTextField fld = null;}}}});}}


2