7.1 下拉框&&列表框
下拉框和列表框是用来存储数据并且显示出来的!我们知道在我们 程序员的世界里! 数据这东西是很重要的!所以这两个 组件也是 很重要的!
7.1.1 JComboBaox 下拉框
语法格式:
//创建下拉框对象
JComboBox comboBox = new JComboBox();
//添加项目数据
comboBox.addItem(数据项目);
我们这个数据,基本上是可以接收很多类型的。只要能显示出来的类型都可以。整数、时间、字符串…
package com.muquanyu.lesson06;
import javax.swing.*;
import java.awt.*;
public class ComboBoxDemo extends JFrame {
public ComboBoxDemo()
{
Container container = getContentPane();
JComboBox status = new JComboBox();
//整数
status.addItem(2);
//字符串
status.addItem("项目2");
status.addItem("项目3");
setLayout(null);
status.setBounds(200,200,100,30);
add(status);
setBounds(500,500,500,500);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
ComboBoxDemo comboBoxDemo = new ComboBoxDemo();
}
}
7.1.2 JList 列表
Jlist 只能在创建的时候,添加 一个任意的 序列数据。那还有办法 进行数据显示的更新吗?
有呀,我们把 数据和 JList 对象都设为 类变量存储起来,当更新事件被激活,就把 数据更新,然后让 JList 对象 setListData() 方法 来进行数据的重新 赋值 不就完事了
- 字符串数组(数据)
package com.muquanyu.lesson06;
import javax.swing.*;
import java.awt.*;
public class JlistDemo extends JFrame {
public JlistDemo()
{
Container container = getContentPane();
//数组的静态初始化
String[] strdata = {"数据1","数据2","数据3"};
//直接在创建的时候添加数据就行了。
JList jList = new JList(strdata);
container.add(jList);
setLayout(null);
jList.setBounds(0,0,200,400);
setBounds(500,500,500,500);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
JlistDemo JlistDemo = new JlistDemo();
}
}
- Vector模板(泛型编程)
package com.muquanyu.lesson06;
import javax.swing.*;
import java.awt.*;
import java.util.Vector;
public class JlistDemo extends JFrame {
public JlistDemo()
{
Container container = getContentPane();
//String[] strdata = {"数据1","数据2","数据3"};
//泛型编程的 Vector 模板,在C/C++ 里是我们 最常用的 一个容器,通常 我们 如果 认为 数组比较笨重 就用这个了。在 Java 中 通常 用 ArrayList 的概率会更大。
Vector<String>listData = new Vector<String>();
listData.add("A");
listData.add("B");
listData.add("C");
JList jList = new JList(listData);
container.add(jList);
setLayout(null);
jList.setBounds(0,0,200,400);
setBounds(500,500,500,500);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
JlistDemo JlistDemo = new JlistDemo();
}
}
泛型编程的 Vector 模板,在C/C++ 里是我们 最常用的 一个容器,通常 我们 如果 认为 数组比较笨重 就用这个了。在 Java 中 通常 用 ArrayList 的概率会更大。
- 更新数据的例子
package com.muquanyu.lesson06;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
public class JlistDemo extends JFrame {
private Vector<String>listData = null;
private JList jList = null;
public JlistDemo()
{
Container container = getContentPane();
//String[] strdata = {"数据1","数据2","数据3"};
listData = new Vector<String>();
listData.add("A");
listData.add("B");
listData.add("C");
Button button = new Button("Add D data");
button.setBounds(300,300,100,100);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
listData.add("D");
jList.setListData(listData);
}
});
container.add(button);
jList = new JList(listData);
container.add(jList);
setLayout(null);
jList.setBounds(0,0,200,400);
setBounds(500,500,500,500);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
JlistDemo JlistDemo = new JlistDemo();
}
}