java在jlabel 边框边缘上添加文字

java在jlabel 边框边缘上添加文字,第1张

lz  你好

使用setBorder这个方法  设置边框

然后添加带有文字的LineBorder

具体实现如下:(给lz一个完整的例子)

import javax.swing.*

import java.awt.*

import javax.swing.border.*

public class Test extends JFrame{

private JPanel panel

private JLabel label

public Test(){

        //标签的icon请设置自己电脑本地的图片

label = new JLabel(new ImageIcon("qq.jpg"))

//基本的LineBorder

LineBorder lb = new LineBorder(Color.BLACK, 1, false)

panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 10))

panel.add(label)

panel.setBounds(100,50,300,300)

//设置带有文字的LineBorder

panel.setBorder(BorderFactory.createTitledBorder(lb, "欢迎进入", TitledBorder.LEFT, TitledBorder.TOP))

setLayout(null)

getContentPane().add(panel)

setSize(500,500)

setLocationRelativeTo(null)

setDefaultCloseOperation(3)

setVisible(true)

}

public static void main (String[] args) {

new Test()

}

}

运行效果:

ps:

图片的位置和名称,lz自己设定为本地就行了

希望能帮助你哈

主要是使用JLabel函数,摘录如下供参考:

类层次结构图:

java.lang.Object

--java.awt.Component

--java.awt.Container

--javax.swing.JComponent

--javax.swing.JLabel

接下来了解JLabel的各种特性:一般而言:我们最常在JLabel上放置文字或图形,也因此我们常常需要调整JLabel上文字或图形。在JLabel实现了SwingConstants这个interface,而这个interface主要是定义一些组件排列方式的参数:

TOP

LEFT

RIGHT

BOTTOM

CENTER

NORTH

EAST

WEST

SOUTH

NORTH_EAST

SOUTH_EAST

SOUTH_WEST

NORTH_WEST

HORIZONTAL

VERTICAL

LEADING 置于前端

TRAILING置于后端。

在swing中,有相当多的类均实现了SwingConstants这个interface,如AbstractButton、JCheckBoxMenuItem、JLabel、

JProgressBar、JSeparator、JSlider、JTextField、JTabbedPane、JToolbar等等,因此当你使用到这些组件时,你就可以在适当

的时候,利用SwingConstants的参数来定义组件的位置了。

JLabel共有6种构造函数,如下:

JLabel构造函数:

JLabel():建立一个空白的JLabel组件。

JLabel(Icon image):建立一个含有Icon的JLabel组件,Icon的默认排列方式是CENTER.

JLabel(Icon image,int horizontalAlignment):建立一个含有Icon的JLabel组件,并指定其排列方式。

JLabel(String text):建立一个含有文字的JLabel组件,文字的默认排列方式是LEFT.

JLabel(String text,int horizontalAlignment):建立一个含有文字的JLabel组件,并指定其排列方式。

JLabel(String text,Icon icon,int horizontalAlignment):建立一个含有文字与Icon的JLabel组件,并指定其排列方式,

文字与Icon的间距,默认值是4个pixels.

在JLabel中,有几个方法可能是常用到的,例如setHorizontalAlignment(int alignment)与setVerticalAlignment(int

alignment),分别是设置标签内组件(文字或Icon)的水平或垂直位置,而setHorizontalTextPosition(int textPosition)与

setVerticalTextPosition(int textPosition)可设置文字相对于Icon的相对位置,另外,setIconTextGap(int iconTextGap)可设

置标签内文字与Icon间的间距、setText(String test)与setIcon(Icon icon)可分别设置标签内的文字与Icon。

JLabelDemo1.java

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class JLabelDemo1{

public static void main(String[] args){

JFrame f=new JFrame("JLabelDemo1")

Container contentPane=f.getContentPane()

JLabel label=new JLabel()

label.setText("Hello")

label.setHorizontalAlignment(JLabel.RIGHT)

label.setVerticalAlignment(JLabel.TOP)

contentPane.add(label)

f.pack()

f.show()

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0)

}

})

}

}

我们再来看一个有Icon的例子:

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class JLabelDemo2{

public static void main(String[] args){

JFrame f=new JFrame("JLabelDemo1")

Container contentPane=f.getContentPane()

Icon icon=new ImageIcon(".\\icons\\hello.jpg")

JLabel label=new JLabel("Hello",icon,JLabel.CENTER)//产生一个具有文字与Icon的JLabel组件,

//并将此文字与Icon置于JLabel的中间。

label.setHorizontalTextPosition(JLabel.CENTER)//将文字置于Icon的中间,若没有设置此项,默认

//值为文字在Icon的右边。

label.setVerticalTextPosition(JLabel.TOP)//将文字置于Icon的上面,若没有设置此项 ,默认值为中间排列

/*若你在此再加入一行label.setIconTextGap(10)将会加大文字"Hello"与Icon间的间距。

*/

contentPane.add(label)

f.pack()

f.show()

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0)

}

})

}

}


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

原文地址: https://outofmemory.cn/bake/11809572.html

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

发表评论

登录后才能评论

评论列表(0条)

保存