JList大小问题

JList大小问题,第1张

//JPanel Plist = new JPanel()

String [] s = {"特瑞 ", "bbb" }

JList t = new JList(s)

t.setVisibleRowCount(6)//设置列表一打开时所能看到的数据项个数。

//t.setSize(12,12)

t.setFixedCellHeight(50)//设置一个固定值,将用于列表中每个单元的高度。如果 height 为 -1,(此属性的默认值为 -1。)

//则可以通过将 getPreferredSize 应用到每个列表元素的单元渲染器组件来计算 ListUI 的单元高度。

t.setFixedCellWidth(150)//设置一个固定值,将用于列表中每个单元的宽度。如果 width 为 -1,(此属性的默认值为 -1。)

//则可以通过将 getPreferredSize 应用到每个列表元素的单元渲染器组件来计算 ListUI 的单元宽度。

JScrollPane jsp=new JScrollPane(t)

JTabbedPane ListtabbedPane = new JTabbedPane()//创建选项卡组件

ListtabbedPane.addTab("用户列表", null, jsp, "用户列表")

JPanel p1 = new JPanel()

p1.setBackground(Color.black)

p1.add(ListtabbedPane)

rightSplitPane.setTopComponent(p1)

import javax.swing.*

import javax.swing.event.*

import java.awt.*

/**

* @author Hardneedl

*/

final class ChangeFontDemo extends JFrame {

interface Brush {

void doPaint(Graphics g)

}

final static private class FontBrush implements Brush {

private float size

private final String sampleString = "sample string"

synchronized private void setSize(float size) {this.size = size}

public void doPaint(Graphics g) {

Graphics gg = g.create()

gg.setColor(Color.BLUE)

gg.setFont(gg.getFont().deriveFont(size))

gg.drawString(sampleString, 40, 40)

gg.dispose()

}

}

final private static FontBrush brush = new FontBrush()

private static final Dimension minSize = new Dimension(300, 200)

private static final Dimension maxSize = new Dimension(1024, 768)

private static final Dimension preferredSize = new Dimension(300, 400)

final static private JComponent canvas = new JComponent() {

protected void paintComponent(Graphics g) {

super.paintComponent(g)

brush.doPaint(g)

}

}

public Dimension getMaximumSize() {return maxSize}

public Dimension getMinimumSize() {return minSize}

public Dimension getPreferredSize() {return preferredSize}

public String getTitle() {return "Font Demo"}

private JList sizeList

ChangeFontDemo() throws HeadlessException {

init()

doLay()

attachListeners()

}

private void init() {

Float[] size = new Float[10]

for (int i = 0, k = 20, j = size.length i < j i++,k+=5) size[i] = new Float(k)

sizeList = new JList(size) {

private final Dimension minSize = new Dimension(100, 60)

public Dimension getMinimumSize() {return minSize}

public Dimension getPreferredSize() {return minSize}

}

sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION)

}

private void doLay() {

Container container = getContentPane()

container.add(new JScrollPane(sizeList), BorderLayout.NORTH)

container.add(canvas, BorderLayout.CENTER)

pack()

}

private void attachListeners() {

sizeList.addListSelectionListener(new ListSelectionListener() {

public void valueChanged(ListSelectionEvent e) {

if (!e.getValueIsAdjusting()) {

brush.setSize((Float) sizeList.getSelectedValue())

if (canvas.isVisible())canvas.repaint()

}

}

})

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {new ChangeFontDemo().setVisible(true)}

})

}

}

的确是要用HTML,但是不是向上面的哥们说的那样用:

String[] data = {"<html><font color="+"red"+">one</font></html>","{"<html><font color="+"blue"+">two</font></html>","three","four","five"}

JList list = new JList(data)

这样就可以了


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

原文地址: http://outofmemory.cn/tougao/11389738.html

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

发表评论

登录后才能评论

评论列表(0条)

保存