package com.dxm.demo3;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
public class Demo1 {
public static void main(String[] args) {
JFrame jFrame = new JFrame("Hello");
Container container = jFrame.getContentPane();
JLabel label = new JLabel("name");
label.setHorizontalAlignment(SwingConstants.CENTER);
container.add(label);
container.setBackground(Color.cyan);
jFrame.setVisible(true);
jFrame.setSize(300, 200);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
package com.dxm.demo3;
import java.awt.Container;
import java.awt.Label;
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;
public class Demo2 {
public static void main(String[] args) {
final JFrame jf = new JFrame("test");
Container container = jf.getContentPane();
JLabel label = new JLabel("Main Frame");
label.setHorizontalAlignment(SwingConstants.CENTER);
container.add(label);
JButton btn = new JButton("show dialog");
btn.setBounds(10, 10,30, 30);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog(jf, "Dialog");
dialog.add(new Label("I am dialog"));
dialog.setSize(200, 200);
dialog.setVisible(true);
}
});
container.add(btn);
jf.setVisible(true);
jf.setSize(500, 300);
}
}
package com.dxm.demo3;
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;
public class DrawIcon implements Icon {
private int width;
private int height;
public DrawIcon(int width, int height) {
super();
this.width = width;
this.height = height;
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.fillOval(x, y, width, height);
}
@Override
public int getIconWidth() {
return this.width;
}
@Override
public int getIconHeight() {
return this.height;
}
public static void main(String[] args) {
DrawIcon drawIcon = new DrawIcon(15, 15);
JLabel label = new JLabel("Hello", drawIcon, SwingConstants.CENTER);
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500,300);
Container container = frame.getContentPane();
container.add(label);
}
}
package com.dxm.demo3;
import java.awt.Container;
import java.awt.Label;
import java.net.URL;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class MyImageIcon extends JFrame {
public MyImageIcon() {
Container container = getContentPane();
JLabel label = new JLabel("Hello");
URL uri = MyImageIcon.class.getResource("1.JPG");
Icon icon = new ImageIcon(uri);
label.setIcon(icon);
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setOpaque(true);
container.add(label);
setSize(1000,500);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyImageIcon();
}
}
import java.awt.*;
import javax.swing.*;
public class AbsolutePosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public AbsolutePosition() {
setTitle("本窗体使用绝对布局"); // 设置该窗体的标题
setLayout(null); // 使该窗体取消布局管理器设置
setBounds(0, 0, 200, 150); // 绝对定位窗体的位置与大小
Container c = getContentPane(); // 创建容器对象
JButton b1 = new JButton("按钮1"); // 创建按钮
JButton b2 = new JButton("按钮2"); // 创建按钮
b1.setBounds(10, 30, 80, 30); // 设置按钮的位置与大小
b2.setBounds(60, 70, 100, 20);
c.add(b1); // 将按钮添加到容器中
c.add(b2);
setVisible(true); // 使窗体可见
// 设置窗体关闭方式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new AbsolutePosition();
}
}
import java.awt.*;
import javax.swing.*;
public class FlowLayoutPosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public FlowLayoutPosition() {
setTitle("本窗体使用流布局管理器"); // 设置窗体标题
Container c = getContentPane();
// 设置窗体使用流布局管理器,使组件右对齐,并且设置组件之间的水平间隔与垂直间隔
setLayout(new FlowLayout(2, 10, 10));
for (int i = 0; i < 10; i++) { // 在容器中循环添加10个按钮
c.add(new JButton("button" + i));
}
setSize(300, 200); // 设置窗体大小
setVisible(true); // 设置窗体可见
// 设置窗体关闭方式
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new FlowLayoutPosition();
}
}
import java.awt.*;
import javax.swing.*;
public class BorderLayoutPosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
// 定义组件摆放位置的数组
String[] border = { BorderLayout.CENTER, BorderLayout.NORTH,
BorderLayout.SOUTH, BorderLayout.WEST, BorderLayout.EAST };
String[] buttonName = { "center button", "north button",
"south button", "west button", "east button" };
public BorderLayoutPosition() {
setTitle("这个窗体使用边界布局管理器");
Container c = getContentPane(); // 定义一个容器
setLayout(new BorderLayout()); // 设置容器为边界布局管理器
for (int i = 0; i < border.length; i++) {
// 在容器中添加按钮,并设置按钮布局
c.add(border[i], new JButton(buttonName[i]));
}
setSize(350, 200); // 设置窗体大小
setVisible(true); // 使窗体可视
// 设置窗体关闭方式
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new BorderLayoutPosition();
}
}
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class GridLayoutPosition extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public GridLayoutPosition() {
Container c = getContentPane();
// 设置容器使用网格布局管理器,设置7行3列的网格
setLayout(new GridLayout(7, 3, 5, 5));
for (int i = 0; i < 20; i++) {
c.add(new JButton("button" + i)); // 循环添加按钮
}
setSize(300, 300);
setTitle("这是一个使用网格布局管理器的窗体");
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new GridLayoutPosition();
}
}
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class JPanelTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public JPanelTest() {
Container c = getContentPane();
// 将整个容器设置为2行1列的网格布局
c.setLayout(new GridLayout(2, 1, 10, 10));
// 初始化一个面板,设置1行3列的网格布局
JPanel p1 = new JPanel(new GridLayout(1, 3, 10, 10));
JPanel p2 = new JPanel(new GridLayout(1, 2, 10, 10));
JPanel p3 = new JPanel(new GridLayout(1, 2, 10, 10));
JPanel p4 = new JPanel(new GridLayout(2, 1, 10, 10));
p1.add(new JButton("1")); // 在面板中添加按钮
p1.add(new JButton("1"));
p1.add(new JButton("2"));
p1.add(new JButton("3"));
p2.add(new JButton("4"));
p2.add(new JButton("5"));
p3.add(new JButton("6"));
p3.add(new JButton("7"));
p4.add(new JButton("8"));
p4.add(new JButton("9"));
c.add(p1); // 在容器中添加面板
c.add(p2);
c.add(p3);
c.add(p4);
setTitle("在这个窗体中使用了面板");
setSize(420, 200);
setVisible(true);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JPanelTest();
}
}
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class JScrollPaneTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public JScrollPaneTest() {
Container c = getContentPane(); // 创建容器
JTextArea ta = new JTextArea(20, 50); // 创建文本区域组件
JScrollPane sp = new JScrollPane(ta); // 创建JScrollPane面板对象
c.add(sp); // 将该面板添加到该容器中
setTitle("带滚动条的文字编译器");
setSize(200, 200);
setVisible(true);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JScrollPaneTest();
}
}
package com.lzw;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
public class JButtonTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public JButtonTest() {
URL url = JButtonTest.class.getResource("imageButtoo.jpg");
Icon icon = new ImageIcon(url);
setLayout(new GridLayout(3, 2, 5, 5)); // 设置网格布局管理器
Container c = getContentPane(); // 创建容器
for (int i = 0; i < 5; i++) {
// 创建按钮,同时设置按钮文字与图标
JButton J = new JButton("button" + i, icon);
c.add(J); // 在容器中添加按钮
if (i % 2 == 0) {
J.setEnabled(false); // 设置其中一些按钮不可用
}
}
JButton jb = new JButton(); // 实例化一个没有文字与图片的按钮
jb.setMaximumSize(new Dimension(90, 30)); // 设置按钮与图片相同大小
jb.setIcon(icon); // 为按钮设置图标
jb.setHideActionText(true);
jb.setToolTipText("图片按钮"); // 设置按钮提示为文字
jb.setBorderPainted(false); // 设置按钮边界不显示
jb.addActionListener(new ActionListener() { // 为按钮添加监听事件
public void actionPerformed(ActionEvent e) {
// 弹出确认对话框
JOptionPane.showMessageDialog(null, "弹出对话框");
}
});
c.add(jb); // 将按钮添加到容器中
setTitle("创建带文字与图片的按钮");
setSize(350, 150);
setVisible(true);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String args[]) {
new JButtonTest();
}
}
package com.lzw;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CheckBoxTest extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel panel1 = new JPanel();
private JPanel panel2 = new JPanel();
private JTextArea jt=new JTextArea(3,10);
private JCheckBox jc1=new JCheckBox("1");
private JCheckBox jc2=new JCheckBox("2");
private JCheckBox jc3=new JCheckBox("3");
public CheckBoxTest(){
Container c=getContentPane();
setSize(200,160);
setVisible(true);
setTitle("复选框的使用");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
c.setLayout(new BorderLayout());
c.add(panel1, BorderLayout.NORTH);
final JScrollPane scrollPane = new JScrollPane(jt);
panel1.add(scrollPane);
c.add(panel2, BorderLayout.SOUTH);
panel2.add(jc1);
jc1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(jc1.isSelected())
jt.append("复选框1被选中\n");
}
});
panel2.add(jc2);
jc2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(jc2.isSelected())
jt.append("复选框2被选中\n");
}
});
panel2.add(jc3);
jc3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(jc3.isSelected())
jt.append("复选框3被选中\n");
}
});
}
public static void main(String[] args) {
new CheckBoxTest();
}
}
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class JComboBoxModelTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JComboBox<String> jc = new JComboBox<>(new MyComboBox());
JLabel jl = new JLabel("请选择证件:");
public JComboBoxModelTest() {
setSize(new Dimension(160, 180));
setVisible(true);
setTitle("在窗口中设置下拉列表框");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jl);
cp.add(jc);
}
public static void main(String[] args) {
new JComboBoxModelTest();
}
}
class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String> {
/**
*
*/
private static final long serialVersionUID = 1L;
String selecteditem = null;
String[] test = { "身份证", "军人证", "学生证", "工作证" };
public String getElementAt(int index) {
return test[index];
}
public int getSize() {
return test.length;
}
public void setSelectedItem(Object item) {
selecteditem = (String) item;
}
public Object getSelectedItem() {
return selecteditem;
}
public int getIndex() {
for (int i = 0; i < test.length; i++) {
if (test[i].equals(getSelectedItem()))
return i;
}
return 0;
}
}
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class JListTest extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public JListTest() {
Container cp = getContentPane();
cp.setLayout(null);
JList<String> jl = new JList<>(new MyListModel());
JScrollPane js = new JScrollPane(jl);
js.setBounds(10, 10, 100, 100);
cp.add(js);
setTitle("在这个窗体中使用了列表框");
setSize(200, 150);
setVisible(true);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String args[]) {
new JListTest();
}
}
class MyListModel extends AbstractListModel<String> {
/**
*
*/
private static final long serialVersionUID = 1L;
private String[] contents = { "列表1", "列表2", "列表3", "列表4", "列表5", "列表6" };
public String getElementAt(int x) {
if (x < contents.length)
return contents[x++];
else
return null;
}
public int getSize() {
return contents.length;
}
}
package com.lzw;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTextFieldTest extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public JTextFieldTest(){
setSize(250,100);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
Container cp=getContentPane();
getContentPane().setLayout(new FlowLayout());
final JTextField jt=new JTextField("aaa",20);
final JButton jb=new JButton("清除");
cp.add(jt);
cp.add(jb);
jt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成方法存根
jt.setText("触发事件");
}
});
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
jt.setText("");
jt.requestFocus();
}
});
setVisible(true);
}
public static void main(String[] args) {
new JTextFieldTest();
}
}
package com.lzw;
import java.awt.*;
import javax.swing.*;
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();
}
}