java 中的那个Jlist怎么才能显示东西
分析,
1. 可以使用直接在构造时给一个参数(数组或者Vector类型)
比如
String[] arr = {“张三”,”李四”,”王五”};
JListString list = new JListString(arr);
2. 使用一个DefaultListModel 可以动态的添加数据. ..
具体代码如下:(刚好昨天回答别人,写的一段代码. 可以做个示范)
全部菜品的JList中 ,单击菜品,可以出现在已选菜品中
Jlist1(全部菜品)就是用数组生成的Jlist
JList2(已选菜品)就是动态添加数据的JList
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class MenuFrame extends JFrame implements ListSelectionListener {
JTextField jtf;
JListString jlist1, jlist2;
static final String[] CP = { “青椒土豆丝”, “西红柿炒鸡蛋”, “麻辣小龙虾”, “鱼香肉丝”, “西湖醋鱼”, “红汤老火锅”, “可乐”, “茉莉花茶” };
DefaultListModelString dlm;//用dlm给jlist2动态添加数据
public MenuFrame() {
JPanel jpCenter = new JPanel(new GridLayout(1, 2));
jlist1 = new JListString(CP);
jlist1.addListSelectionListener(this);
JScrollPane jsp1 = new JScrollPane(jlist1);//滚动面板
jsp1.setBorder(BorderFactory.createTitledBorder(“全部菜品”));//带标题的边框
jpCenter.add(jsp1);
jlist2 = new JListString();
dlm = new DefaultListModelString();
jlist2.setModel(dlm);
JScrollPane jsp2 = new JScrollPane(jlist2);
jsp2.setBorder(BorderFactory.createTitledBorder(“已选菜品”));
jpCenter.add(jsp2);
add(jpCenter);
jtf = new JTextField(5);
jtf.setEnabled(false);
jtf.setText(“0道”);
JLabel jl = new JLabel(“你已经选中的菜单数量是:”);
JPanel jpSouth = new JPanel();
jpSouth.add(jl);
jpSouth.add(jtf);
add(jpSouth, BorderLayout.SOUTH);
setTitle(“点菜”);
setSize(300, 200);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MenuFrame();//启动窗口
}
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
dlm.addElement(jlist1.getSelectedValue());//给dlm添加元素,更新jlist2的数据
jtf.setText(dlm.size()+”道”);
}
}
}
java swing之JList
JList的默认渲染器本身是一个JLabel,是可以设置图片+文字的样式的,只不过默认渲染器里面有一行代码setIcon(null),清空了图标而已,要显示图标只需要继承JList默认渲染器,然后把图标设置上就可,如下:
class MyListCellRenderer extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof ExampleObject) {
ExampleObject object= (ExampleObject) value;
//ExampleObject有两个属性:Icon和Name
label.setIcon(object.getIcon());
label.setText(object.getName());
}
if (isSelected) {
setBackground(Color.WHITE);
} else {
setBackground(list.getBackground());
}
return label;
}
}
至于事件就简单了,监听鼠标事件就可以了
求教java swing JList 的一个问题
滑轮的出现不是取决你设置的行数,而是取决于你设置的JList的大小.
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class A extends JFrame// implements ListSelectionListener
{
JPanel jp=new JPanel();
String[] str={“一”,”二”,”三”,”四”,”五”,”六”,”七”,”八”,”九”,”十”};
JList list=new JList(str);
JScrollPane jsp=new JScrollPane(list);
public A()
{
jp.setLayout(null);
list.setVisibleRowCount(8);
//list.addListSelectionListener(this);
jsp.setBounds(20,20,80,120);
jp.add(jsp);
this.add(jp);
this.setVisible(true);
this.setSize(300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new A();
}
}
javax.swing的JLIST问题
你说的应该是JComboBox,不是JList。JList应该全部选项都显示出来了,而ComboBox是带个小按钮下拉的。
怎么把数据库里的东西放到jLIST上,再显示到界面上,java SWING 的~~~给代码和思路都行
首先你要连接数据库,你用的是什么数据库,然后在select出来放进list,至于在swing中显示,可以使用label,设置它的值