赞
踩
组件
GUI的核心技术:Swing AWT
为什么学习?
包含了很多类和接口、GUI:图形用户界面
元素:窗口、按钮、文本框
java.awt
import java.awt.*; // GUI的第一个界面 public class TestFrame { public static void main(String[] args){ // Frame, JDK, 看源码! Frame frame = new Frame("我的第一个Java图形界面窗口"); // 需要设置可见性 w h frame.setVisible(true); // 设置窗口大小 frame.setSize(400,400); // 设置背景颜色 color frame.setBackground(new Color(65, 133, 73)); // 弹出的初始位置 frame.setLocation(200,200); // 设置大小固定 frame.setResizable(false); } }
问题:发现窗口关闭不掉,停止java程序!
尝试回顾封装:
import java.awt.*; public class TestFrame2 { public static void main(String[] args){ // 展示多个窗口 MyFrame myFrame1 = new MyFrame(100, 100, 200, 200, Color.blue); MyFrame myFrame2 = new MyFrame(300, 100, 200, 200, Color.yellow); MyFrame myFrame3 = new MyFrame(100, 300, 200, 200, Color.red); MyFrame myFrame4 = new MyFrame(300, 300, 200, 200, Color.green); } } class MyFrame extends Frame { static int id=0; // 可能存在多个窗口,需要设计一个计数器 public MyFrame(int x,int y,int w,int h,Color color){ super("MyFrame+"+(++id)); setBackground(color); setBounds(x,y,w,h); setVisible(true); } }
解决了关闭事件
import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; // panel可以看成是一个空间,但是不能单独存在 public class TestPanel { public static void main(String[] args){ Frame frame=new Frame(); // 布局的概念 Panel panel=new Panel(); // 设置布局 frame.setLayout(null); // 坐标 frame.setBounds(300,300,500,500); frame.setBackground(new Color(64, 185, 49)); // panel设置坐标,相对于frame panel.setBounds(50,50,400,400); panel.setBackground(new Color(235, 71, 51)); // frame.add(panel) frame.add(panel); frame.setVisible(true); // 监听事件,监听窗口关闭事件 System.exit(0) // 适配器模式: frame.addWindowListener(new WindowAdapter() { // 窗口点击关闭时需要做的事情 @Override public void windowClosing(WindowEvent e) { // 结束程序 System.exit(0); } }); } }
流式布局
import java.awt.*; public class TestFlowLayout { public static void main(String[] args){ Frame frame=new Frame(); // 组件-按钮 Button button1 = new Button("button1"); Button button2 = new Button("button1"); Button button3 = new Button("button1"); // 设置为流式布局时 // frame.setLayout(new FlowLayout()); // 按钮靠窗口的左边 frame.setLayout(new FlowLayout(FlowLayout.LEFT)); // 设置窗口样式 frame.setSize(200,200); frame.setVisible(true); // 添加按钮到窗口 frame.add(button1); frame.add(button2); frame.add(button3); } }
东西南北中
import java.awt.*; public class TestBorderLayout { public static void main(String[] args){ Frame frame=new Frame("TestBorderLayout"); // 新建按钮对象 Button east=new Button("East"); Button west=new Button("West"); Button south=new Button("South"); Button north=new Button("North"); Button center=new Button("Center"); // 添加按钮到窗口上 frame.add(east,BorderLayout.EAST); frame.add(west,BorderLayout.WEST); frame.add(south,BorderLayout.SOUTH); frame.add(north,BorderLayout.NORTH); frame.add(center,BorderLayout.CENTER); // 设置窗口样式 frame.setSize(200,200); frame.setVisible(true); } }
表格布局
import java.awt.*; public class TestGridLayout { public static void main(String[] args){ Frame frame=new Frame("TestGridLayout"); // 新建按钮对象 Button btn1=new Button("btn1"); Button btn2=new Button("btn2"); Button btn3=new Button("btn3"); Button btn4=new Button("btn4"); Button btn5=new Button("btn5"); Button btn6=new Button("btn6"); frame.setLayout(new GridLayout(3,2)); frame.add(btn1); frame.add(btn2); frame.add(btn3); frame.add(btn4); frame.add(btn5); frame.add(btn6); frame.pack(); // java的函数 将布局选择最优位置来确定 frame.setVisible(true); } }
测试:
import java.awt.*; public class TestExersize { public static void main(String[] args){ // 总窗口布局 Frame frame=new Frame("练习"); frame.setVisible(true); frame.setSize(400,300); frame.setLocation(400,300); frame.setBackground(Color.blue); frame.setLayout(new GridLayout(2,1)); // 4个面板 Panel p1=new Panel(new BorderLayout()); Panel p2=new Panel(new GridLayout(2,1)); Panel p3=new Panel(new BorderLayout()); Panel p4=new Panel(new GridLayout(2,2)); // 把按钮放到面板 p1.add(new Button("East-1"),BorderLayout.EAST); p1.add(new Button("West-1"),BorderLayout.WEST); p2.add(new Button("p2-btn-1")); p2.add(new Button("p2-btn-2")); // 把p2装到p1 p1.add(p2,BorderLayout.CENTER); p3.add(new Button("East-2"),BorderLayout.EAST); p3.add(new Button("West-2"),BorderLayout.WEST); for(int i=0;i<4;i++){ p4.add(new Button("for-"+i)); } // 把p4装到p3 p3.add(p4,BorderLayout.CENTER); // 把面板放到窗口 frame.add(p1); frame.add(p3); // 监听窗口关闭 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
总结:
定义:当某个发生的时候,干什么?
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class TestActionEvent { public static void main(String[] args){ // 按下按钮,触发一些事件 Frame frame = new Frame(); Button button = new Button(); // 因为addActionListener()需要一个MyActionListenter,所以我们需要构造一个MyActionListenter MyActionListenter myActionListenter = new MyActionListenter(); button.addActionListener(myActionListenter); frame.add(button,BorderLayout.CENTER); frame.pack(); windowClose(frame); // 关闭窗口 frame.setVisible(true); } // 关闭窗口的事件 private static void windowClose(Frame frame){ frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } } // 事件监听 class MyActionListenter implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { System.out.println("aaa"); } }
多个按钮,共享一个事件
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TestActionTwo { public static void main(String[] args) { // 两个按钮实现同一个监听 // 开始 停止 Frame frame = new Frame("开始-停止"); Button button1 = new Button("start"); Button button2 = new Button("stop"); // 可以显示的定义触发会返回的命令,如果不显示定义则会走默认的值 button2.setActionCommand("button2-stop"); // 可以多个按钮只写一个监听类 MyMonitor myMonitor = new MyMonitor(); button1.addActionListener(myMonitor); button2.addActionListener(myMonitor); frame.add(button1,BorderLayout.NORTH); frame.add(button2,BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } } class MyMonitor implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // e.getActionCommand()获得按钮的信息 System.out.println("按钮被点击了:msg=>"+e.getActionCommand()); if(e.getActionCommand().equals("start")){ } } }
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TestText01 { public static void main(String[] args) { // 启动! MyFrame myFrame = new MyFrame(); } } class MyFrame extends Frame{ public MyFrame(){ TextField textField = new TextField(); add(textField); // 监听文本框输入的信息 MyActionListener myActionListener = new MyActionListener(); // 按下Enter,就会触发这个输入框的事件 textField.addActionListener(myActionListener); // 设置替换编码 textField.setEchoChar('*'); setVisible(true); pack(); } } class MyActionListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { TextField field=(TextField)e.getSource(); // 获得一些资源,返回的一个对象 System.out.println(field.getText()); // 获得输入框中的文本 field.setText(""); // 回车触发事件之后清除输入文本 } }
oop原则:组合,大于继承
目前代码
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; // 简易计算器 public class TestCalc { public static void main(String[] args) { Calculator calculator = new Calculator(); } } // 计算器类 class Calculator extends Frame{ public Calculator(){ // 3个文本框 TextField num1 = new TextField(10); // 字符数 TextField num2 = new TextField(10); // 字符数 TextField num3 = new TextField(20); // 字符数 // 1个按钮 Button button = new Button("="); button.addActionListener(new MyCalculatorListener(num1,num2,num3)); // 1个标签 Label label = new Label("+"); // 布局 setLayout(new FlowLayout()); add(num1); add(label); add(num2); add(button); add(num3); // 样式 pack(); setVisible(true); setLocation(400,350); setSize(500,100); setTitle("简易计算器"); } } // 监听器类 class MyCalculatorListener implements ActionListener{ // 获取3个变量 private TextField num1,num2,num3; public MyCalculatorListener(TextField num1,TextField num2,TextField num3){ this.num1=num1; this.num2=num2; this.num3=num3; } @Override public void actionPerformed(ActionEvent e) { // 1.获得加数和被加数 int n1=Integer.parseInt(num1.getText()); int n2=Integer.parseInt(num2.getText()); // 2.将这个值+法运算后,放到第三个框 num3.setText(""+(n1+n2)); // 3.清除前两个框 num1.setText(""); num2.setText(""); } }
完全改造为面向对象
// 简易计算器 public class TestCalc { public static void main(String[] args) { new Calculator().loadFrame(); } } // 计算器类 class Calculator extends Frame{ // 属性 TextField num1,num2,num3; // 方法 public void loadFrame(){ // 3个文本框 num1 = new TextField(10); // 字符数 num2 = new TextField(10); // 字符数 num3 = new TextField(20); // 字符数 // 1个按钮 Button button = new Button("="); button.addActionListener(new MyCalculatorListener(this)); // 1个标签 Label label = new Label("+"); // 布局 setLayout(new FlowLayout()); add(num1); add(label); add(num2); add(button); add(num3); // 样式 pack(); setVisible(true); setLocation(400,350); setSize(500,100); setTitle("简易计算器"); } } // 监听器类 class MyCalculatorListener implements ActionListener{ // 获取计算器这个对象,在一个类中组合另一个类 Calculator calculator=null; public MyCalculatorListener(Calculator calculator){ this.calculator=calculator; } @Override public void actionPerformed(ActionEvent e) { // 1.获得加数和被加数 int n1=Integer.parseInt(calculator.num1.getText()); int n2=Integer.parseInt(calculator.num2.getText()); // 2.将这个值+法运算后,放到第三个框 calculator.num3.setText(""+(n1+n2)); // 3.清除前两个框 calculator.num1.setText(""); calculator.num2.setText(""); } }
内部类:
// 简易计算器 public class TestCalc { public static void main(String[] args) { new Calculator().loadFrame(); } } // 计算器类 class Calculator extends Frame{ // 属性 TextField num1,num2,num3; // 方法 public void loadFrame(){ // 3个文本框 num1 = new TextField(10); // 字符数 num2 = new TextField(10); // 字符数 num3 = new TextField(20); // 字符数 // 1个按钮 Button button = new Button("="); button.addActionListener(new MyCalculatorListener()); // 1个标签 Label label = new Label("+"); // 布局 setLayout(new FlowLayout()); add(num1); add(label); add(num2); add(button); add(num3); // 样式 pack(); setVisible(true); setLocation(400,350); setSize(500,100); setTitle("简易计算器"); } // 监听器类 private class MyCalculatorListener implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // 1.获得加数和被加数 int n1=Integer.parseInt(num1.getText()); int n2=Integer.parseInt(num2.getText()); // 2.将这个值+法运算后,放到第三个框 num3.setText(""+(n1+n2)); // 3.清除前两个框 num1.setText(""); num2.setText(""); } } }
import java.awt.*; public class TestPaint { public static void main(String[] args) { new MyPaint().loadFrame(); } } class MyPaint extends Frame{ public void loadFrame(){ setBounds(200,150,600,500); setVisible(true); } // 画笔 @Override public void paint(Graphics g) { // 画笔,需要有颜色,画笔可以画画 g.setColor(Color.red); // g.drawOval(100,100,100,100); g.fillOval(100,100,100,100); // 实心圆 g.setColor(Color.green); g.fillRect(150,200,200,200); // 养成习惯,画笔用完,将它还原为最初的颜色 } }
目的:想要实现鼠标画画!
import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Iterator; // 鼠标监听事件 public class TestMouseListener { public static void main(String[] args) { new MyFrame("画图"); } } // 自己的类 class MyFrame extends Frame{ // 画画需要画笔,需要监听鼠标当前的位置,需要集合来存储这个点 ArrayList points; public MyFrame(String title) { super(title); setBounds(200,200,400,300); // 存放鼠标点击的点 points=new ArrayList<>(); // 鼠标监听器,针对这个窗口 this.addMouseListener(new MyMouseListener()); setVisible(true); } @Override public void paint(Graphics g) { // 画画,监听鼠标的事件 Iterator iterator=points.iterator(); while (iterator.hasNext()){ Point point=(Point) iterator.next(); g.setColor(Color.BLUE); g.fillOval(point.x,point.y,10,10); } } // 添加一个点到界面上 public void addPaint(Point point){ points.add(point); } // 适配器模式 private class MyMouseListener extends MouseAdapter{ // 鼠标 按下,弹起,按住不放 @Override public void mousePressed(MouseEvent e) { MyFrame frame = (MyFrame) e.getSource(); // 这里点击时就会在界面上产生点! // 这个点就是鼠标的点 frame.addPaint(new Point(e.getX(),e.getY())); // 每次点击鼠标都需要重新画一遍 frame.repaint(); // 刷新 } } }
import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class TestWindow { public static void main(String[] args) { new WindowFrame(); } } class WindowFrame extends Frame{ public WindowFrame(){ setBackground(Color.blue); setBounds(100,100,200,200); setVisible(true); this.addWindowListener( // 匿名内部类 new WindowAdapter() { // 关闭窗口 @Override public void windowClosing(WindowEvent e) { System.out.println("windowClosing"); System.exit(0); } // 激活窗口 @Override public void windowActivated(WindowEvent e) { WindowFrame source = (WindowFrame) e.getSource(); source.setTitle("被激活了"); System.out.println("windowActivated"); } } ); } }
import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class TestKeyListener { public static void main(String[] args) { new KeyFrame(); } } class KeyFrame extends Frame{ public KeyFrame(){ setBounds(1,2,300,400); setVisible(true); this.addKeyListener(new KeyAdapter() { // 键盘按下 @Override public void keyPressed(KeyEvent e) { // 获得键盘按下的键 int keyCode = e.getKeyCode();// 获得当前键盘的值,不需要去记录这个值,直接使用静态属性 VK_XXX System.out.println(keyCode); if(keyCode==KeyEvent.VK_UP){ System.out.println("你按下了上键"); } // 根据按下的不同操作,产生不同的结果 } }); } }
import javax.swing.*; public class JFrameDemo { // init():初始化 public void init(){ // 顶级窗口 JFrame jframe = new JFrame("这是一个JFrame窗口"); jframe.setVisible(true); jframe.setBounds(100,100,200,200); // 设置文字 JLabel JLabel label = new JLabel("欢迎来到我的世界"); jframe.add(label); // 关闭事件 jframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { // 建立一个窗口 new JFrameDemo().init(); } }
标签居中
import javax.swing.*; import java.awt.*; public class JFrameDemo02 { public static void main(String[] args) { new MyJframe2().init(); } } class MyJframe2 extends JFrame{ public void init(){ // 顶级窗口 this.setVisible(true); this.setBounds(10,10,200,300); // 设置文字 JLabel JLabel label = new JLabel("欢迎来到我的世界"); this.add(label); // 让文本标签居中 label.setHorizontalAlignment(SwingConstants.CENTER); // 获得一个容器 Container contentPane = this.getContentPane(); contentPane.setBackground(Color.BLUE); } }
JDialog,用来被弹出,默认就有关闭事件
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; // 主窗口 public class DialogDamo extends JFrame { public DialogDamo(){ this.setVisible(true); this.setSize(700,500); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // JFrame 放东西 容器 Container container=this.getContentPane(); // 绝对布局 container.setLayout(null); // 按钮 JButton button=new JButton("点击弹出一个对话框"); // 创建 button.setBounds(30,30,200,50); // 点击这个按钮的时候,弹出一个弹窗 button.addActionListener(new ActionListener() { // 监听器 @Override public void actionPerformed(ActionEvent e) { // 弹窗 new MyDialogDemo(); } }); container.add(button); } public static void main(String[] args) { new DialogDamo(); } } // 弹窗的窗口 class MyDialogDemo extends JDialog{ public MyDialogDemo(){ this.setVisible(true); this.setBounds(100,100,500,500); // this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Container container = this.getContentPane(); container.setLayout(null); container.add(new Label("我学了gui")); } }
label
new JLabel("xxxx");
图标 ICON
import javax.swing.*; import java.awt.*; // 图标,需要实现类,frame继承 public class IconDemo extends JFrame implements Icon { private int width; private int height; public IconDemo(){ } public IconDemo(int width, int height){ this.width = width; this.height = height; } public void init(){ IconDemo iconDemo = new IconDemo(15, 15); // 图标放在标签上,也可以放在按钮上 JLabel label = new JLabel("icontest", iconDemo, SwingConstants.CENTER); Container container = getContentPane(); container.add(label); this.setVisible(true); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new IconDemo().init(); } @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; } }
图片
import javax.swing.*; import java.awt.*; import java.net.URL; public class ImageIconDemo extends JFrame{ public ImageIconDemo(){ // 获取图片的地址 JLabel label = new JLabel("ImageIcon"); URL url = ImageIconDemo.class.getResource("tx.jpg"); ImageIcon imageIcon = new ImageIcon(url); label.setIcon(imageIcon); label.setHorizontalAlignment(SwingConstants.CENTER); Container container = getContentPane(); container.add(label); setVisible(true); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setBounds(100,100,200,200); } public static void main(String[] args) { new ImageIconDemo(); } }
JPanel
import javax.swing.*; import java.awt.*; public class JPanelDemo extends JFrame { public JPanelDemo(){ Container container = this.getContentPane(); container.setLayout(new GridLayout(2,1,10,10)); // 后面的参数意思是间距 JPanel panel1 = new JPanel(new GridLayout(1, 3)); JPanel panel2 = new JPanel(new GridLayout(1, 2)); JPanel panel3 = new JPanel(new GridLayout(2, 1)); JPanel panel4 = new JPanel(new GridLayout(3, 2)); panel1.add(new JButton("1")); panel1.add(new JButton("1")); panel1.add(new JButton("1")); panel2.add(new JButton("2")); panel2.add(new JButton("2")); panel3.add(new JButton("3")); panel3.add(new JButton("3")); panel4.add(new JButton("4")); panel4.add(new JButton("4")); panel4.add(new JButton("4")); panel4.add(new JButton("4")); panel4.add(new JButton("4")); panel4.add(new JButton("4")); container.add(panel1); container.add(panel2); container.add(panel3); container.add(panel4); setVisible(true); setSize(500,500); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new JPanelDemo(); } }
JScrollPanel
import javax.swing.*; import java.awt.*; public class JScrollDemo extends JFrame { public JScrollDemo(){ Container container = this.getContentPane(); // 文本域 JTextArea textArea = new JTextArea(20, 20); textArea.setText("欢迎来到我的世界"); // Scroll面板 JScrollPane scrollPane = new JScrollPane(textArea); container.add(scrollPane); this.setVisible(true); this.setBounds(100,100,300,350); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new JScrollDemo(); } }
图片按钮
import javax.swing.*; import java.awt.*; import java.net.URL; public class JButtonDemo01 extends JFrame { public JButtonDemo01(){ // 获取容器 Container container = this.getContentPane(); // 将一个图片变为图标 URL resource = JButtonDemo01.class.getResource("tx.jpg"); Icon icon=new ImageIcon(resource); // 把这个图标放到按钮上 JButton button = new JButton(); button.setIcon(icon); button.setToolTipText("图片按钮"); // add container.add(button); this.setVisible(true); this.setSize(500,300); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new JButtonDemo01(); } }
单选按钮
import javax.swing.*; import java.awt.*; import java.net.URL; public class JButtonDemo02 extends JFrame{ public JButtonDemo02(){ // 获取容器 Container container = this.getContentPane(); // 将一个图片变为图标 URL resource = JButtonDemo02.class.getResource("tx.jpg"); Icon icon=new ImageIcon(resource); // 单选框 JRadioButton jRadioButton01 = new JRadioButton("JRadioButton01"); JRadioButton jRadioButton02 = new JRadioButton("JRadioButton02"); JRadioButton jRadioButton03 = new JRadioButton("JRadioButton03"); // 由于单选框只能选择一个,分组 ButtonGroup group = new ButtonGroup(); group.add(jRadioButton01); group.add(jRadioButton02); group.add(jRadioButton03); container.add(jRadioButton01,BorderLayout.CENTER); container.add(jRadioButton02,BorderLayout.NORTH); container.add(jRadioButton03,BorderLayout.SOUTH); this.setVisible(true); this.setSize(500,300); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new JButtonDemo02(); } }
复选按钮
import javax.swing.*; import java.awt.*; import java.net.URL; public class JButtonDemo03 extends JFrame{ public JButtonDemo03(){ // 获取容器 Container container = this.getContentPane(); // 将一个图片变为图标 URL resource = com.liu.lesson05.JButtonDemo02.class.getResource("tx.jpg"); Icon icon=new ImageIcon(resource); // 多选框 JCheckBox checkBox01 = new JCheckBox("checkBox01"); JCheckBox checkBox02 = new JCheckBox("checkBox02"); container.add(checkBox01,BorderLayout.NORTH); container.add(checkBox02,BorderLayout.SOUTH); this.setVisible(true); this.setSize(500,300); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new JButtonDemo03(); } }
下拉框
import javax.swing.*; import java.awt.*; public class TestComboboxDemo01 extends JFrame { public TestComboboxDemo01(){ Container container = this.getContentPane(); JComboBox status = new JComboBox(); status.addItem(null); status.addItem("正在上映"); status.addItem("已下架"); status.addItem("即将上映"); container.add(status); this.setVisible(true); this.setSize(500,250); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new TestComboboxDemo01(); } }
列表框
import javax.swing.*; import java.awt.*; import java.util.Vector; public class TestComboboxDemo02 extends JFrame { public TestComboboxDemo02(){ Container container = this.getContentPane(); // 生成列表的内容 // String[] contents={"1","2","3"}; Vector contents = new Vector(); // 列表中放入内容 JList jList = new JList(contents); contents.add("张三"); contents.add("李四"); contents.add("王五"); container.add(jList); this.setVisible(true); this.setSize(500,250); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new TestComboboxDemo02(); } }
应用场景
文本框
import javax.swing.*; import java.awt.*; public class TestTextDemo01 extends JFrame { public TestTextDemo01(){ Container container = this.getContentPane(); JTextField textField1 = new JTextField("hello"); JTextField textField2 = new JTextField("world",20); container.add(textField1,BorderLayout.NORTH); container.add(textField2,BorderLayout.SOUTH); this.setVisible(true); this.setSize(500,250); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new TestTextDemo01(); } }
密码框
import javax.swing.*; import java.awt.*; public class TestTextDemo02 extends JFrame { public TestTextDemo02(){ Container container = this.getContentPane(); JPasswordField passwordField = new JPasswordField(); passwordField.setEchoChar('*'); container.add(passwordField); this.setVisible(true); this.setSize(500,250); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new TestTextDemo02(); } }
文本域
public class JScrollDemo extends JFrame { public JScrollDemo(){ Container container = this.getContentPane(); // 文本域 JTextArea textArea = new JTextArea(20, 20); textArea.setText("欢迎来到我的世界"); // Scroll面板 JScrollPane scrollPane = new JScrollPane(textArea); container.add(scrollPane); this.setVisible(true); this.setBounds(100,100,300,350); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new JScrollDemo(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。