目录

一、基本容器

1.1 JFrame

1.2 JDialog

二、基本布局

2.1 AbsoluteLayout

2.2 BorderLayout

2.3 FlowLayout

2.4 GridLayout

三、面板容器

3.1 JPanel

3.2 JScrollPane

四、基本组件

4.1 JLabel带有Icon与ImageIcon

4.2 JButton

4.3 JRadioButton

4.4 JCheckButton

4.5 列表组件

4.5.1 JComboBox

4.5.2 JList

4.6 文本组件

4.6.1 JTextField

4.6.2 JPasswordField

4.6.3 JTextArea


一、基本容器

1.1 JFrame

package com.zyx.mySwing.myContainers;import java.awt.Color;
import java.awt.Container;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
/*** java.awt.Container类是javax.swing.JComponent的父类* 对于容器,如果继承了了JFrame,则此类可以直接调用getContentPane()获取一个容器Container container =getContentPane(); * 也可以先定义一个JFrame对象jf,然后用jf调用getContentPane()获取一个容器Container container = jf.getContentPane();* * 设置容器,需要针对JFrame对象jf设置。jf.set();* 添加部件,需要针对Container对象container设置。container.add(JComponent);* * JFrame的构造方法:* public JFrame()* public JFrame(String title)*/
public class JFrameExp1 extends JFrame{public void createFirstJFrame(String title) {JFrame jFrame = new JFrame(title);Container container = jFrame.getContentPane();//获取一个容器JLabel jl = new JLabel("这是一个JFrame窗体");// 使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);container.add(jl);container.setBackground(Color.blue);jFrame.setVisible(true);jFrame.setSize(200,150);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//      jFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//      jFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
//      jFrame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);}public static void main(String[] args) {(new JFrameExp1()).createFirstJFrame("test JFrame");}
}

1.2 JDialog

package com.zyx.mySwing.myContainers;import java.awt.Color;
import java.awt.Container;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
/*** JDialog来作为容器,一般情况下其需要基于父容器中生成* public JDialog()* public JDialog(Frame f)* public JDialog(Frame f,boolean model)* public JDialog(Frame f,String title)* public JDialog(Frame f,String title,boolean model)* JFrame是Frame的子类* * JDialog只支持:HIDE_ON_CLOSE\DISPOSE_ON_CLOSE\DO_NOTHING_ON_CLOSE**/
public class JDialogwithJFrame extends JFrame{/*** */private static final long serialVersionUID = 1L;public JDialogwithJFrame() {JFrame jFrame= new JFrame("JFrame contains JDialog");Container container = jFrame.getContentPane();JLabel jLabel = new JLabel("这是一个JFrame");jLabel.setHorizontalAlignment(SwingConstants.CENTER);container.add(jLabel);JButton jb = new JButton("弹出对话框");jb.setBounds(10,10,100,21);jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {(new MyJDialog(JDialogwithJFrame.this)).setVisible(true);}});container.add(jb);jFrame.setBackground(Color.cyan);jFrame.setVisible(true);jFrame.setSize(200,150);jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}class MyJDialog extends JDialog{public MyJDialog(Frame frame) {super(frame,"myfirst JDialog",true);Container container = getContentPane();JLabel jl = new JLabel("这是一个JDialog");container.add(jl);
//          this.setVisible(true);this.setBounds(120,120,100,100);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}}public static void main(String[] args) {new JDialogwithJFrame();}
}

二、基本布局

2.1 AbsoluteLayout

package com.zyx.mySwing.myLayout;import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
/*** Container.setLayout(null);取消布局管理器* Component.setBounds();设置每个组件的大小与位置*/public class AbsoluteLayout extends JFrame{public AbsoluteLayout() {setTitle("本窗体使用绝对布局");setBounds(100, 100, 500, 500);setLayout(null);Container container = getContentPane();JButton jb1 = new JButton("按钮1");JButton jb2 = new JButton("按钮2");jb1.setBounds(110, 110, 100, 20);jb2.setBounds(110, 140, 100, 20);container.add(jb1);container.add(jb2);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new AbsoluteLayout();}
}

2.2 BorderLayout

package com.zyx.mySwing.myLayout;import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;import javax.swing.JFrame;
import javax.swing.WindowConstants;
/*** 边界布局管理器* Swing的默认布局管理器是边界布局管理器BorderLayout* 组件置于四个位置:* BorderLayout.NORTH* BorderLayout.SOUTH* BorderLayout.EAST* BorderLayout.WEST* BorderLayout.CENTER**/
public class BorderLayoutTest extends JFrame{String[] border = {BorderLayout.CENTER,BorderLayout.WEST,BorderLayout.EAST,BorderLayout.NORTH,BorderLayout.SOUTH};String[] buttonName = {"Center","West","East","North","South"};public BorderLayoutTest() {setTitle("这个窗体使用边界布局管理器");Container container =getContentPane();setLayout(new BorderLayout());for(int i=0;i<border.length;i++) {container.add(border[i],new Button(buttonName[i]));}setSize(500,500);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new BorderLayoutTest();}
}

2.3 FlowLayout

package com.zyx.mySwing.myLayout;import java.awt.Container;
import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
/*** FlowLayout类中具有以下构造函数:* public FlowLayout()* public FlowLayout(int aligment)* public FlowLayout(int aligment,int horizGap,int vertGap)* 构造方法中的aligment参数表示使用流布局管理器后组件在每一行的具体摆放位置。* 它可以被赋予以下3个值之一:* FlowLayout.LEFT=0 每一行的组件将被指定按照左对齐排列* FlowLayout.CENTER=1 每一行的组件将被指定按中间对齐排列* FlowLayout.RIGHT=2  每一行的组件将被指定按照右对齐排列* horizGap表示组件之间的按像素的水平间隔* vertGap表示组件之间的按像素的垂直间隔*/public class FlowLayoutTest extends JFrame{public FlowLayoutTest() {setTitle("本窗口使用流布局管理器");Container container = getContentPane();setLayout(new FlowLayout(1,10,10));for(int i=0;i<5;i++) {container.add(new JButton("button"+i));}setSize(500,500);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new FlowLayoutTest();}
}

2.4 GridLayout

package com.zyx.mySwing.myLayout;import java.awt.Button;
import java.awt.Container;
import java.awt.GridBagLayout;
import java.awt.GridLayout;import javax.swing.JFrame;
import javax.swing.WindowConstants;
/*** 网格布局管理器将容器划分为网格,所以组件可以按行和列进行排列。* 在网格布局管理器中,每一个组件的大小都相同,并且网格中空格的个数由网格的行数和列数决定,* 如一个两行两列的网格能产生4个大小相等的网格。* 网络布局管理器主要有以下两个常用的构造方法:* public GridLayout(int rows,int cols);* public GridLayout(int rows,int cols,int horizGap,int vertGap);* rows:行数;cols:列数;horizGap:网格水平距离;vertGap:网格垂直距离*/public class GridLayoutTest extends JFrame{public GridLayoutTest() {Container container = getContentPane();setLayout(new GridLayout(7,3,5,5));for(int i=0;i<20;i++) {container.add(new Button("button"+i));}setSize(500,500);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new GridLayoutTest();}
}

三、面板容器

3.1 JPanel

package com.zyx.mySwing.myPane;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
/*** JPanel面板可以聚集一些组件来布局,组件也是一种容器,因为它也继承自java.awt.Container* JPanel是一种组件,可以添加到容器中。* JPanel是一种容器,可以添加布局,可以添加组件。*/
public class JPanelTest extends JFrame{public JPanelTest() {String[] border = {BorderLayout.CENTER,BorderLayout.WEST,BorderLayout.EAST,BorderLayout.NORTH,BorderLayout.SOUTH};String[] buttonName = {"Center","West","East","North","South"};Container container = getContentPane();container.setLayout(new GridLayout(2,1,10,10));JPanel jp1 = new JPanel(new GridLayout(1,3,10,10));JPanel jp2 = new JPanel(new BorderLayout());JPanel jp3 = new JPanel(new FlowLayout(1,10,10));JPanel jp4 = new JPanel(new GridLayout(2,1,10,10));for(int i=0;i<3;i++) {jp1.add(new JButton("button"+i));}for(int i=0;i<border.length;i++) {jp2.add(border[i],new JButton(buttonName[i]));}for(int i=3;i<13;i++) {jp3.add(new JButton("button"+i));}for(int i=13;i<16;i++) {jp4.add(new JButton("button"+i));}container.add(jp1);container.add(jp2);container.add(jp3);container.add(jp4);setSize(500,500);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JPanelTest();}
}

3.2 JScrollPane

package com.zyx.mySwing.myPane;import java.awt.Container;
import java.awt.GridLayout;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
/*** 滚动面板:当在一个较小的容器窗体中显示一个较大部分的内容,可以使用JScrollPane面板。* JScrollPane是一个容器,但只能放一个组件,并且不可以使用布局管理器。*            如果想要放多个组件,可以用一个JPanel存储多个组件,然后将JPanel放到JScrollPane中* JScrollPane是一个组件,可以放在其他容器中。*/
public class JScrollPaneTest extends JFrame{public JScrollPaneTest() {Container container = getContentPane();// 创建容器setLayout(new GridLayout(1,3,10,10));JTextArea jta = new JTextArea(100,1000);// 创建文本区域组件JScrollPane jsp = new JScrollPane(jta);container.add(jsp);container.add(new JButton("Center"));container.add(new JButton("Right"));setTitle("带滚动条的文字编译器");setSize(500,500);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JScrollPaneTest();}
}

四、基本组件

4.1 JLabel带有Icon与ImageIcon

package com.zyx.mySwing.myComponents;import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;/*** 图标icon,是指* public JLabel():创建一个不带图标和文本的JLabel对象* public JLabel(Icon icon):创建一个带图标的JLabel对象* public JLabel(Icon icon,int aligment):创建一个带图标的JLabel对象,并设置水平对齐方式* public JLabel(String text,Icon icon,int aligment):创建一个带文本、图标的JLabel对象,并设置标签内容水平对齐方式*/
public class JLabelwithIcon implements Icon{ private int width,height;//图标宽高public JLabelwithIcon(int w,int h) {this.width = w;this.height=h;}@Overridepublic void paintIcon(Component c, Graphics g, int x, int y) {g.fillOval(x, y, width, height);//绘制一个圆形图标}@Overridepublic int getIconWidth() {return this.width;}@Overridepublic int getIconHeight() {return this.height;}public static void main(String[] args) {JLabelwithIcon icon = new JLabelwithIcon(15, 15); JLabel jl = new JLabel("测试",icon,SwingConstants.CENTER);JFrame jf = new JFrame();Container container  = jf.getContentPane();container.add(jl);jf.setBackground(Color.cyan);jf.setVisible(true);jf.setSize(200,150);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}
}
package com.zyx.mySwing.myComponents;import java.awt.Container;
import java.awt.Image;
import java.net.URL;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;public class JLabelwithImageIcon extends JFrame{public JLabelwithImageIcon() {Container container = getContentPane();// 创建一个容器JLabel jl = new JLabel("这是一个JFrame",JLabel.CENTER);// 创建一个标签URL url = JLabelwithImageIcon.class.getResource("m1.png");// 获取图片所在URLImageIcon imageicon = new ImageIcon(url);// 实例化Icon对象/*** 接下来修改图片图标大小* 1. 获取图片图标Image 对象* 2. 利用Image的伸缩算法,修改图标图片大小* 3. 然后重新赋值图标图片ImageIcon值为修改过的Image对象*/Image image = imageicon.getImage();// 获取图标图片image = image.getScaledInstance(30, 30, Image.SCALE_DEFAULT);// 将图标图片给缩放一下imageicon.setImage(image);// 获取图片/*以上三行代码注释掉就取消掉了图片伸缩*/jl.setIcon(imageicon); // 设置 图标位置为中间//        jl.setHorizontalAlignment(SwingConstants.CENTER); // 设置标签文本水平居中jl.setOpaque(true);// 设置标签为不透明container.add(jl);// 将标签添加到容器setSize(250,100);setVisible(true);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JLabelwithImageIcon();}
}

4.2 JButton

package com.zyx.mySwing.myComponents;import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.WindowConstants;//import sun.awt.www.content.image.jpeg;/*** Swing中的提交按钮由JButton对象表示,其构造方法有以下几种形式:* public JButton()* public JButton(String text) // 可以显示文本* public JButton(Icon icon) // 可以显示图标* public JButton(String text,Icon icon)*/
public class JButtonTest extends JFrame{public JButtonTest() {URL url = JLabelwithImageIcon.class.getResource("m1.png");//获取图片路径ImageIcon imageicon = new ImageIcon(url);// 设置图片标签setLayout(new GridLayout(3,2,5,5));// 设置布局Container container = getContentPane();for(int i=0;i<5;i++) {Image image = imageicon.getImage();image = image.getScaledInstance(30, 30, Image.SCALE_REPLICATE);imageicon.setImage(image);JButton jb = new JButton("button"+i,imageicon);container.add(jb);if(i%2==0) jb.setEnabled(false);// 设置其中一些按钮不可用}JButton jb = new JButton();// 实例化一个没有文字与图片的按钮jb.setMaximumSize(new Dimension(30,30));// 设置按钮与图片相同大小jb.setIcon(imageicon); // 为按钮设置图标jb.setHideActionText(true);jb.setToolTipText("图片按钮");// 设置按钮提示为文字jb.setBorderPainted(false); // 设置按钮边界不显示jb.addActionListener(new ActionListener() {//为按钮添加监听事件public void actionPerformed(ActionEvent e) {// 弹出确认对话框JOptionPane.showMessageDialog(null, "弹出对话框");}});container.add(jb); // 将按钮添加到容器中setVisible(true);setSize(500,500);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JButtonTest();}
}

4.3 JRadioButton

/*** 单选按钮,有以下构造函数* public JRadioButton()* public JRadioButton(Icon icon)* public JRadioButton(Icon icon,boolean selected)* public JRadioButton(String text)* public JRadioButton(String text,Icon icon)* public JRadioButton(String text,Icon icon,boolean selected)* 单选按钮可以被设置成一个按钮组,常用于一个多选情形,如多选题,可以同时具有单选和多选的功能* JRadioButton jr1 = new JRadioButton();* JRadioButton jr2 = new JRadioButton();* ButtonGroup group = new ButtonGroup();* group.add(jr1);* group.add(jr2); */

4.4 JCheckButton

package com.zyx.mySwing.myComponents;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;public class JCheckBoxTest extends JFrame{private static final long serialVersionUID = 1L;private JPanel jp1 = new JPanel();private JPanel jp2 = new JPanel();private JTextArea jta = new JTextArea(5,15); // 创建文本域private JCheckBox jc1 = new JCheckBox("1");private JCheckBox jc2 = new JCheckBox("2");private JCheckBox jc3 = new JCheckBox("3");private JCheckBox[] jcs = {jc1,jc2,jc3};public JCheckBoxTest() {Container container = getContentPane();container.setLayout(new BorderLayout());final JScrollPane sp = new JScrollPane(jta); // 文本域添加到滚动面板jp1.add(sp);container.add(jp1,BorderLayout.NORTH);container.add(jp2,BorderLayout.SOUTH);jp2 = jpadd(jp2, jc1, 1);jp2 = jpadd(jp2, jc2, 2);jp2 = jpadd(jp2, jc3, 3);setSize(300,200);setVisible(true);setTitle("复选框的使用");setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}private JPanel jpadd(JPanel jp,JCheckBox jc,int num) {jp.add(jc);jc.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if(jc.isSelected()){jta.append("复选框 "+num+" 被选中\n");}}});return jp;}public static void main(String[] args) {new JCheckBoxTest();}
}

4.5 列表组件

4.5.1 JComboBox

package com.zyx.mySwing.myComponents.listComponents;import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;/*** 下拉列表组件:下拉列表框是一个带条状的显示区,它具有下拉功能,在下拉列表框的右方存在一个倒三角形的按钮* 当用户单击该按钮时,下拉列表中的项目将会以列表形式显示出来。* public JComboBox()* public JComboBox(ComboBoxModel dataModel)* public JComboBox(Object[] arrayData)* public JComboBox(Vector vector)* * 一般将下拉列表中的项目封装成ComboBoxModel的情况比较多。* ComboBoxModel为接口,它代表一般模型,可以自定义为一个类实现该接口:* 然后在初始化JComboBox对象时向上转型为ComBoxModel接口类型,但是必须实现以下两个方法:*    public void setSelectedItem(Object item):用于设置下拉列表框中的选中项*    public Object getSelectedItem():用于返回下拉列表框的选中项* 自定为一个类除了implement ComboBoxModel接口以外,还可以extends AbstractListModel类。* 该类有两个操作下拉列表的方法:*    getSize():返回列表的长度*  getElementAt(int index):返回指定索引处的值*/
public class JComboBoxTest extends JFrame{class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String>{String selectedItem = null;String[] items = {"3","2","张三李四","张三李四"};@Override // 获取下拉列表框中的姓名public int getSize() {return items.length;}@Override // 根据索引返回值public String getElementAt(int index) {return items[index];}@Override // 设置下拉列表框被选中项目public void setSelectedItem(Object anItem) {selectedItem = (String)anItem;}@Override   // 获取下拉列表框中的项目public Object getSelectedItem() {return selectedItem;}}private JComboBox<String> jc = new JComboBox<>(new MyComboBox());// 这是JDK7的新特性private JLabel jl = new JLabel("选择正确选项");private JPanel jp = new JPanel();public JComboBoxTest() {Container container = getContentPane();// 创建容器setLayout(new FlowLayout());container.add(jl);container.add(jc);setSize(300,300);setVisible(true);setTitle("下拉框列表测试");setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JComboBoxTest();}
}

4.5.2 JList

package com.zyx.mySwing.myComponents.listComponents;import java.awt.Container;import javax.swing.AbstractListModel;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.WindowConstants;/*** 列表框组件:* 列表框只是在窗体上占据固定的大小,如果需要列表框具有滚动效果,可以将列表框放入滚动面板中。* * public void JList():无参构造列表框,通过在初始化列表框后使用setListData()方法对列表框进行设置;* public void JList(Object[] listData):以下三个有参构造方法对列表框项目进行设置。* public void JList(Vector listData)* public void JList(ListModel dataModel)* * 使用数组作为初始化列表框的参数:* String[] items = {"A","B","C"};* JList jl = new JList(items);* 使用Vector类型作为初始化列表框的参数:* Vector items = new Vector();* JList jl = JList(items);* items.add("A");* items.add("B");* items.add("C");*/
public class JListTest extends JFrame{public JListTest() {Container container = getContentPane();//创建容器container.setLayout(null);/*** 以下是一种通过继承抽象类AbstractListModel实现的列表框模型* JList<String> jl = new JList<String>(new ListModel());*/JList<String> jl = new JList<String>(new MyListModel()); // 此处用了JDK7的新特性JScrollPane jsp = new JScrollPane(jl); // 一个滚动面板中加入一个列表框jsp.setBounds(10, 10, 100, 100);// 设置滚动面板container.add(jsp); // 容器加入滚动面板/*** 以下是一种通过DefaultListModel,由于其扩展了AbstractListModel。* 设置完成后,其向上转型成ListModel接口,初始化列表框* DefaultListModel可以通过addElement方法可以*/final String[] elements = {"a","b","c","项目1","项目二","项目三"};final DefaultListModel jlm = new DefaultListModel();final JList jl2 = new JList(jlm); // 创建一个列表框for(int i=0;i<elements.length;i++)jlm.addElement(elements[i]);JScrollPane jsp2 = new JScrollPane(jl2); // 一个滚动面板中加入一个列表框jsp2.setBounds(110, 10, 100, 100);// 设置滚动面板container.add(jsp2);setSize(300,300);setVisible(true);setTitle("测试列表框组件");setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}class MyListModel extends AbstractListModel<String>{ // 继承抽象类AbstractListModelprivate String[] items = {"项目1","项目二","项目三","a","b","c"};public int getSize() {return items.length;} // 重写getSizepublic String getElementAt(int x) { // 重写getElementAtif (x<items.length) { // 若索引位置不超过长度return items[x++]; // 返回索引位置值,然后索引+1}else {return null;}}}public static void main(String[] args) {new JListTest();}
}

4.6 文本组件

4.6.1 JTextField

package com.zyx.mySwing.myComponents.textComponents;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
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.JTextField;
import javax.swing.WindowConstants;public class JTextFieldTest extends JFrame{/*** 文本框用来显示或编辑一个单行文本* public JTextField()* public JTextField(String text)* public JTextField(int fieldwidth)* public JTextField(String text,int fieldwidth)* public JTextField(Document docModel,String text,int fieldwidth)* 在初始化时,设置文本框的默认文字,文本框的长度等实现*/public JTextFieldTest() {final JTextField jtf = new JTextField("aaa",20);final JButton jb = new JButton("Clear");jtf.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {jtf.setText("触发事件"); // 设置文本框的值}});
//      jtf.setSize(100,20);jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {jtf.setText("");   // 将文本框置空jtf.requestFocus(); //焦点回到文本框}});
//      jb.setSize(100, 20);Container container = getContentPane();setLayout(new FlowLayout());container.add(jtf);container.add(jb);setSize(250,100);setVisible(true);setTitle("测试文本框JTextField");setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {new JTextFieldTest();}
}

4.6.2 JPasswordField

/*** 密码框JPasswordField与文本框JTextField的定义与用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密* public JPasswordField()* public JPasswordField(String text)* public JPasswordField(int fieldwidth)* public JPasswordField(String text,int fieldwidth)* public JPasswordField(Document docModel,String text,int fieldwidth)* 在程序中定义密码框:* JPasswordField jpf = new JPasswordField();* jpf.setEchoChar("#"); // 设置回显字符*/

4.6.3 JTextArea

package com.zyx.mySwing.myComponents.textComponents;import java.awt.Container;import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;public class JTextAreaTest extends JFrame{private static final long serialVersionUID = 1L;public JTextAreaTest(){setSize(200,100);setTitle("定义自动换行的文本域");setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);Container cp=getContentPane();JTextArea jt=new JTextArea("文本域",6,6);jt.setLineWrap(true);//可以自动换行cp.add(jt);setVisible(true);}public static void main(String[] args) {new JTextAreaTest();}
}

javax.swing的基本组成相关推荐

  1. javax.swing.jFrame

    原文地址:java布局管理器总结作者:技术羊 之前在使用的过程中一直对java中swing的布局管理器感到很困惑,以下是在网上找到的一篇文章.其中我重点关注了一下gridbaglayout.写的比较详 ...

  2. javax.swing设计的系统登录界面

    特点:没有JFrame自带的边框图标等,所有的容器都看不到JFrame原始样子,支持拖动任意位置 隐藏JFrame图标任务栏 jdk1.7以上可以隐藏JFrame图标任务栏 (jframe.setTy ...

  3. The package javax.swing is not accessible错误的三种解决办法,亲测有效

    万次阅读,150+点赞,如若对您有帮助,请及时点赞,不要白嫖!! 解决办法①:更换JRE系统库的版本 解决办法②:另外一个比较暴力的解决办法是点击java.swing.*; 解决办法③:之前导包失败的 ...

  4. The package javax.swing is not accessible(java GUI 编程时引用swing包和awt包时会报错怎么办)

    Java GUI 编程时引用swing包和awt包时会报错怎么办 一.环境与错误现象 使用的编译器为eclipse,情况为: 二.解决方法 问题主要是由工程中的module-info.java这个文件 ...

  5. 解决The package java.awt is not accessible或者javax.swing is not accessible的问题

    今天学习Java"图形界面的输入输出"时,用到了awt和swing包.但是eclipse一直报错: 解决方法如下:找到文件module.nito.java ,打开  输入" ...

  6. javax.swing super()方法

    super();这句的意思是调用父类的构造方法,只能写在子类的构造方法里面 super();必须是构造器的第一个语句,也就是只能在构造函数函数中间用,构造函数的特点是一和类名同名,二没有任何返回值类型 ...

  7. 解决jmeter控制台报javax.swing.text.BadLocationException: Position not represented by view的方法

    在 jmeter安装目录-bin目录下,修改jmeter.properties文件,添加以下两行内容: remote_hosts=127.0.0.1 server_port=1099 然后保存文件,重 ...

  8. Jmeter javax.swing.text.BadLocationException: Position not represented by view 解决方法

    jmeter中bin文件夹下面jmeter.properties文件中修改如下: remote_hosts=127.0.0.1 server_port=1099

  9. win7下Matlab7打不开,显示javax.swing.borderEmptyBorder.init(Unknow Source)

    右击MATLAB图标选属性后,选择兼容模式下的勾选框(以兼容模式运行这个程序)并在下方的下拉列表中选择windows vista

最新文章

  1. Linq查询语法(2)
  2. 《C++面向对象高效编程(第2版)》——2.16 识别成员函数的目标对象
  3. linux如何挂载windows共享文件,linux如何挂载windows下的共享文件
  4. Linux内核:关于中断你需要知道的【转】
  5. SVM: 支持向量机中的,那个C
  6. java alder32_Java里面计算Adler32校验
  7. python捕获全局异常统一管理_python中如何用sys.excepthook来对全局异常进行捕获、显示及输出到error日志中...
  8. TPS、QPS、系统吞吐量、并发用户数区别及性能术语的理解
  9. 孙丕恕:应把云计算大数据融在一起 降低社会运营成本
  10. 【w3cschool】Linux命令简单复习
  11. python入门学习(五 字符串string和变量variable)
  12. 2018年最新北风网人工智能视频教程(完整版)
  13. How to enable/disable EWF
  14. BLE芯片DA145XX系列:GPIO特殊配置
  15. wps怎么把边框加粗_怎么设置WPS表格边框线加粗 - 卡饭网
  16. android 获取渠道信息,Android 如何获取 umeng 的 渠道信息
  17. uni-app 项目怎么运行到手机
  18. CVX约束中需要使用一些中间变量该怎么办
  19. 超强古文...... yi
  20. 导致word文档损坏故障发生的原因是什么?

热门文章

  1. 学历教育如何做快手广告投放?快手广告投放的展现量介绍
  2. 云函数 SCF 中 PHP 的一些入门坑
  3. python数据挖掘商业案例_Python数据科学-技术详解与商业实践-第八讲作业
  4. 视频背景音乐怎么一键消音
  5. HTTP LIVE Streams
  6. Anaconda使用说明(个人版)
  7. 【多目标跟踪论文阅读笔记——Tracktor++】
  8. html是最美的开发语言,世界公认3大最美语言
  9. 基于Linux_ARM板的驱动烧写及连接、挂载详细过程(附带驱动程序)
  10. 安装Microsoft Office 2010 提示需要安装MSXML版本6.10.1129.0 的解决