大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
JLabel中的折行必须使用html代码,其他的都没有作用。我举一个例子好了:
创新互联于2013年创立,先为巴青等服务建站,巴青等地企业,进行企业商务咨询服务。为巴青企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
JLabel lab = new JLabel() ;
lab.setText("html第一行显示br第二行显示/html") ;
简单的说,用html/html标记头尾,标记这里面的都是html代码,想在哪里换行就插入br
Java显示所有的Unicode 字符,代码主要是使用Java.awt.Graphics
的drawChars()方法,来绘出Unicode 字符。在设计符合国际化的程序过程当中,仅仅能够显示本地字符是不够的,只用Unicode
字符集才能够满足同时显示多国语言字符的需要。本实例实现了如何显示Unicode 字符的方法。
Java显示所有Unicode 字符编写方法:
1.编写UnicodeDisplay 类,该类继承了Jframe 类,实现了ActionListener
接口,该类是为了显示一个图形化的界面而实现的一个显示框架类,该类负责初始化显示窗口以及负责与用户交互,按照用户指定的字体以及风格改变
Unicode 的显示,代码如下:
// 导入所需要的Java 类库
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class UnicodeDisplay extends JFrame implements ActionListener {
int page = 0;
UnicodePanel p;
JScrollBar b;
String fontfamily = "Serif";
int fontstyle = Font.PLAIN;
/*构造函数,创建frame、菜单和滚动条*/
public UnicodeDisplay(String name) {
super(name);
p = new UnicodePanel(); // 创建panel
p.setBase((char)(page * 0x100)); // 初始化panel
getContentPane().add(p, "Center"); // 使其居中
// Create and set up a scrollbar, and put it on the right
b = new JScrollBar(Scrollbar.VERTICAL, 0, 1, 0, 0xFF);
b.setUnitIncrement(1);
b.setBlockIncrement(0x10);
b.addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
page = e.getValue();
p.setBase((char)(page * 0x100));
}
});
getContentPane().add(b, "East");
// 设置消息响应函数处理关闭窗口请求
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
});
// 响应PageUP、PageDown、Up 和Down 按键
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
int oldpage = page;
if ((code == KeyEvent.VK_PAGE_UP) ||
(code == KeyEvent.VK_UP)) {
if (e.isShiftDown()) page -= 0x10;
else page -= 1;
if (page 0) page = 0;
}
else if ((code == KeyEvent.VK_PAGE_DOWN) ||
(code == KeyEvent.VK_DOWN)) {
if (e.isShiftDown()) page += 0x10;
else page += 1;
if (page 0xff) page = 0xff;
}
if (page != oldpage) { //如果改变了当前显示页
p.setBase((char) (page * 0x100)); // 更新显示
b.setValue(page); // 更新滚动条
}
}
});
// 建立可以改变显示字体的菜单.
JMenuBar menubar = new JMenuBar();
this.setJMenuBar(menubar);
menubar.add(makemenu("Font Family",
new String[] {"Serif", "SansSerif", "Monospaced"},
this));
menubar.add(makemenu("Font Style",
new String[]{
"Plain","Italic","Bold","BoldItalic"
}, this));
}
2.ActionPerformed()方法用于处理子菜单当中的各个选项:
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("Serif")) fontfamily = "Serif";
else if (cmd.equals("SansSerif")) fontfamily = "SansSerif";
else if (cmd.equals("Monospaced")) fontfamily = "Monospaced";
else if (cmd.equals("Plain")) fontstyle = Font.PLAIN;
else if (cmd.equals("Italic")) fontstyle = Font.ITALIC;
else if (cmd.equals("Bold")) fontstyle = Font.BOLD;
else if (cmd.equals("BoldItalic")) fontstyle = Font.BOLD + Font.ITALIC;
p.setFont(fontfamily, fontstyle);
}
3.Makemenu()方法用于从数组当中创建菜单,代码如下:
private Jmenu makemenu(String name, String[] itemnames,
ActionListener listener)
{
Jmenu m = new Jmenu(name);
for(int I = 0; I itemnames.length; I++) {
JmenuItem item = new JmenuItem(itemnames[I]);
item.addActionListener(listener);
item.setActionCommand(itemnames[I]);
m.add(item);
}
return m;
}
4.编写UnicodePanel 类,该类继承了Jcomponent,创建负责显示Unicode 的类UnicodePanel,它负责绘出一页(共有16×16=256 个)的Unicode 字符:
public static class UnicodePanel extends JComponent {
protected char base; // 指定我们显示的初始值
protected Font font = new Font("serif", Font.PLAIN, 18); // 指定缺省的显示字体
protected Font headingfont = new Font("monospaced", Font.BOLD, 18); // 指定缺省表头字体
static final int lineheight = 25; // 指定显示一行高度
static final int charspacing = 20; // 指定显示一个Unicode 字符宽度
static final int x0 = 65;
static final int y0 = 40;
/** 指定开始显示的初始字符并且刷新Panel */
public void setBase(char base) {
this.base = base;
repaint();
}
/**设定显示所用的新字体或者风格并且刷新Panel */
public void setFont(String family, int style) {
this.font = new Font(family, style, 18);
repaint();
}
/** 绘出字符表的一页 */
public void paintComponent(Graphics g) {
int start = (int)base 0xFFF0; // 设置起始显示字符
// 使用给定字体显示表头
g.setFont(headingfont);
// 在顶端绘出0..F
for(int i=0; i 16; i++) {
String s = Integer.toString(i, 16);
g.drawString(s, x0 + i*charspacing, y0-20);
}
// 绘出左边表头.
for(int i = 0; i 16; i++) {
int j = start + i*16;
String s = Integer.toString(j, 16);
g.drawString(s, 10, y0+i*lineheight);
}
// 绘出Unicode 字符
g.setFont(font);
char[] c = new char[1];
for(int i = 0; i 16; i++) {
for(int j = 0; j 16; j++) {
c[0] = (char)(start + j*16 + i);
g.drawChars(c, 0, 1, x0 + i*charspacing, y0+j*lineheight);
}
}
}
/** 返回给定的分辨率 */
public Dimension getPreferredSize() {
return new Dimension(x0 + 16*charspacing,
y0 + 16*lineheight);
}
}
}
importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjavax.swing.JButton;importjavax.swing.JEditorPane;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;publicclassWindowTestextendsJFrameimplementsActionListener,KeyListener{privatestaticfinallongserialVersionUID=1L;/***主方法*/publicstaticvoidmain(String[]args){WindowTestwin=newWindowTest();}/***下面是具体实现*/JTextFieldtext;JButtonbutton;JEditorPanetextArea;publicWindowTest(){super("测试窗体");text=newJTextField(15);text.addKeyListener(this);JPanelp1=newJPanel();p1.add(newJLabel("输入字符:"));p1.add(text);button=newJButton("清除");button.addActionListener(this);p1.add(button);p1.setBounds(5,5,220,100);textArea=newJEditorPane();textArea.setBounds(1,1,216,200);JPanelp2=newJPanel();p2.add(newJLabel("显示字符:"));p2.add(textArea);p2.setBounds(5,115,340,220);JPanelp3=newJPanel();p3.add(p1);p3.add(p2);add(p3);setBounds(160,60,400,300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@OverridepublicvoidkeyPressed(KeyEvente){}@OverridepublicvoidkeyReleased(KeyEvente){if(e.getKeyCode()==KeyEvent.VK_ENTER){textArea.setText("");}else{Stringstr=text.getText();textArea.setText(str);}}@OverridepublicvoidkeyTyped(KeyEvente){}@OverridepublicvoidactionPerformed(ActionEvente){text.setText("");textArea.setText("");}}