JAVA GUI 中下拉列表框中怎么添加图片

JAVA GUI 中下拉列表框中怎么添加图片,第1张

利用 渲染器:

JComboBoxTest 类:

package other

import java.awt.Dimension

import java.awt.Toolkit

import java.io.File

import javax.swing.DefaultComboBoxModel

import javax.swing.Icon

import javax.swing.ImageIcon

import javax.swing.JComboBox

import javax.swing.JFrame

public class JComboBoxTest extends JFrame {

/**

*

*/

private static final long serialVersionUID = -7864758081252556102L

JComboBox jcb = null

Toolkit kit = null

DefaultComboBoxModel model = null

File f = null

public JComboBoxTest() {

this.setLayout(null)

kit = Toolkit.getDefaultToolkit()

jcb = new JComboBox()

model = new DefaultComboBoxModel()

Icon icon = new ImageIcon("d:/images/f5.jpg")//图片的路径 自己找个图片试一下就看到了

IconListItem iii = new IconListItem(icon, "下拉列表", "2103545")//列表中的每个元素

model.addElement(iii)

jcb.setModel(model)

NewCellRenderer ncr = new NewCellRenderer()

jcb.setRenderer(ncr)

jcb.setBounds(5, 50, 200, 70)

add(jcb)

setTitle("[userInfo]登陆中")

setLocation(kit.getScreenSize().width / 10 * 8,kit.getScreenSize().height / 7)

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setSize(new Dimension(220, 600))

setResizable(false)

setVisible(true)

}

public static void main(String args[]) {

new JComboBoxTest()

}

}

NewCellRenderer 类:

package other

import java.awt.Color

import java.awt.Component

import javax.swing.BorderFactory

import javax.swing.JLabel

import javax.swing.JList

import javax.swing.ListCellRenderer

import javax.swing.border.Border

public class NewCellRenderer extends JLabel implements ListCellRenderer {

/**

*

*/

private static final long serialVersionUID = -4013237755398900553L

private Border selectedBorder = BorderFactory.createLineBorder(Color.blue,1),emptyBorder =

BorderFactory.createEmptyBorder(1,1,1,1)

public NewCellRenderer(){

setOpaque(true)

}

public Component getListCellRendererComponent(JList listt, Object value,

int index, boolean isSelected, boolean cellHasFocus) {

IconListItem listItem = (IconListItem) value//value就是IconListItem类的实例

this.setIconTextGap(15)

this.setIcon(listItem.getIcon())

this.setText(listItem.getText()+" "+listItem.getUserID())

this.setHorizontalAlignment(JLabel.LEFT)

this.setSize(120, 27)

if (isSelected) {

setBorder(selectedBorder)

} else {

setBorder(emptyBorder)

}

return this

}

}

IconListItem 类:

package other

import javax.swing.*

public class IconListItem {

Icon icon//图片

String text//文字

String userID//ID等等

public IconListItem(Icon icon, String text, String userID) {

this.icon = icon

this.text = text

this.userID = userID

}

public Icon getIcon() {

return icon

}

public String getText() {

return text

}

public void setIcon(Icon icon) {

this.icon = icon

}

public void setText(String text) {

this.text = text

}

public String getUserID() {

return userID

}

public void setUserID(String userID) {

this.userID = userID

}

}

这样基本就完成了。其余自己写希望对你有帮助。

package Java12

import java.awt.*

import javax.swing.*

public class work43 extends JFrame{

//定义

JPanel jp1,jp2

JLabel jlb1,jlb2

JComboBox jcb1

JList jl1

JScrollPane jsp1

public static void main(String[] args) {

// TODO Auto-generated method stud

work43 w43 = new work43()

}

public work43()

{

//创建

jp1 = new JPanel()

jp2 = new JPanel()

jlb1 = new JLabel("你的籍贯")

jlb2 = new JLabel("旅游地点")

String jg[] = {"北京","上海","广东","杭州"}

jcb1 = new JComboBox(jg)

String dd[] = {"泰山","丽江","长城","西湖"}

jl1 = new JList(dd)

//设置希望显示的选项

jl1.setVisibleRowCount(2)

//设置滚动

jsp1 = new JScrollPane(jl1)

//设置布局

this.setLayout( new GridLayout(3 ,1))

//添加

jp1.add(jlb1)

jp1.add(jcb1)

jp2.add(jlb2)

jp2.add(jsp1)

this.add(jp1)

this.add(jp2)

this.setTitle("选择界面")

this.setSize(200, 200)

this.setLocation(200, 200)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setVisible(true)

}

}

swing组件 -下拉框JComboBox/列表框JList/滚动窗格组件JScrollPane 一般来说列表框组件+滚动窗格组件是组合使用的。目的让列表框的选项可以有滚动条支持;

希望能帮到你!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11942570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存