java jlist 添加滚动条_jlist的滚动条报错

本文展示了如何在Java Swing中使用JList组件并添加滚动条。通过创建JScrollPane,并将JList作为其视图,成功实现了JList带有滚动条的功能。示例代码详细解释了如何设置不同的选择模式,如单选、连续选择和默认选择。
摘要由CSDN通过智能技术生成

展开全部

package com.swing01;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.UIManager;

import java.awt.GridLayout;

import javax.swing.JScrollPane;

import javax.swing.JList;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.ListSelectionModel;

import javax.swing.JLabel;

import javax.swing.SwingConstants;

import java.awt.Font;

public class JListSelectModelTest extends JFrame {

/**

*

*/

private static final long serialVersionUID = -1203078038045289207L;

//面板

private JPanel contentPane;

//列表1

private JList list1;

private JList list2;

private JList list3;

//标签

private JLabel label1;

private JLabel label2;

private JLabel label3;

/**

* Launch the application.

*/

public static void main(String[] args) {

try {

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

} catch (Throwable e) {

e.printStackTrace();

}

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

JListSelectModelTest frame = new JListSelectModelTest();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public JListSelectModelTest() {

addWindowListener(new WindowAdapter() {

@Override

public void windowActivated(WindowEvent e) {

do_this_windowActivated(e);

}

});

//标题

setTitle("力天教育:列表框的显示模式");

//退出时关闭虚拟机

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//大小及显示位置

setBounds(100, 100, 450, 300);

//面板容器

contentPane = new JPanel();

//面板容器的边32313133353236313431303231363533e59b9ee7ad9431333330323966框

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

//布局格式

contentPane.setLayout(new BorderLayout(0, 0));

//将面板容器加入到我们的窗体中

setContentPane(contentPane);

//面板创建

JPanel panel = new JPanel();

//将面板另入到容器面板中

contentPane.add(panel, BorderLayout.CENTER);

//面板布局格式

panel.setLayout(new GridLayout(1, 3, 5, 5));

//滚动条

JScrollPane scrollPane1 = new JScrollPane();

//为面板添加滚动条

panel.add(scrollPane1);

//列表的创建

list1 = new JList();

//设置列表的标题

list1.setFont(new Font("微软雅黑", Font.PLAIN, 14));

//setSelectionMode确定允许单项选择还是多项选择

//ListSelectionModel该组件显示一个具有稳定索引的值列表

//SINGLE_SELECTION一次选择一个列表索引

list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

//创建一个视口(如果有必要)并设置其视图

scrollPane1.setViewportView(list1);

label1 = new JLabel("单项选择按钮");

label1.setFont(new Font("微软雅黑", Font.PLAIN, 14));

//setHorizontalAlignment设置标签内容沿 X 轴的对齐方式

//SwingConstants通常用于在屏幕上定位或定向组件的常量的集合

label1.setHorizontalAlignment(SwingConstants.CENTER);

//设置其视图然后将此列标题视口添加到滚动窗格

scrollPane1.setColumnHeaderView(label1);

JScrollPane scrollPane2 = new JScrollPane();

panel.add(scrollPane2);

list2 = new JList();

list2.setFont(new Font("微软雅黑", Font.PLAIN, 14));

//SINGLE_INTERVAL_SELECTION次选择一个连续的索引范围

list2.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);

scrollPane2.setViewportView(list2);

label2 = new JLabel("连续选择列表");

label2.setHorizontalAlignment(SwingConstants.CENTER);

label2.setFont(new Font("微软雅黑", Font.PLAIN, 14));

scrollPane2.setColumnHeaderView(label2);

JScrollPane scrollPane3 = new JScrollPane();

panel.add(scrollPane3);

list3 = new JList();

list3.setFont(new Font("微软雅黑", Font.PLAIN, 14));

scrollPane3.setViewportView(list3);

label3 = new JLabel("默认选择列表");

label3.setHorizontalAlignment(SwingConstants.CENTER);

label3.setFont(new Font("微软雅黑", Font.PLAIN, 14));

scrollPane3.setColumnHeaderView(label3);

}

protected void do_this_windowActivated(WindowEvent e) {

String[] listData = new String[12];

for(int i=0;i

listData[i] = "力天教育"+(i+1);

}

list1.setListData(listData);

list2.setListData(listData);

list3.setListData(listData);

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值