高手,您好:
我是一名学习软件工程的学生,我想开发一个:
让我的系统中的用户,能够向“系统投诉”系统的使用后用户体验,并且能够进行“投诉为自己服务的系统员工的工作满意度”的面板,添加到我的一个CS结构的作品中去.
我的代码如下:
(第一套)
package c_port_packageDoctor;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.text.View;public class CustomerComplainUI extends JFrame{ /**
*
*/
private static final long serialVersionUID = 1L;
JPanel jp = new JPanel();
Font fnt1 = new Font("黑体",0,18);
Font fnt2 = new Font("黑体",0,18);
Font fnt3 = new Font("黑体",0,18);
JTextArea jta = new JTextArea();
JLabel jL0 = new JLabel("请将您的投诉信,发至这个信箱:“[email protected]”,并且遵守下文中的3个条件。");
JLabel jL1 = new JLabel(""); public static void main(String[] args){
new CustomerComplainUI();
}
public CustomerComplainUI() {
// TODO Auto-generated constructor stub
jp.setLayout(new BorderLayout());
int maxWidth = 100; //限制的宽度
JLabel lbl = new JLabel("<html>请将您的投诉信,发至这个信箱:“[email protected]”,并且遵守下文中的3个条件。/n1.请您在邮件中写上系统员工的工号,和,2.您在结单时所得到的单号,并且,3.邮件的长度,需要达到800个字以上的程度,经过系统的验证,如果您提供的信息属实,系统将把本员工的系统积分,减除一分。如果本系统员工的工作对您造成了损失,本系统,将会把该员工的本单报酬,扣除。如果本系统的员工经查对您的经济,物质造成了损害并且责任在本系统的员工这一方的话。本系统,会包赔您的损失。</html>");
javax.swing.text.View v = javax.swing.plaf.basic.BasicHTML.createHTMLView(lbl, lbl.getText());
v.setSize(maxWidth, Integer.MAX_VALUE);
int h = (int) v.getMinimumSpan(View.Y_AXIS); //这是取得的高度
lbl.setPreferredSize(new Dimension(maxWidth, h));
jp.add(lbl,BorderLayout.NORTH);
this.add(jp);
this.setBounds(400,300,400,300);
this.setVisible(true);
}}
点击“运行”后,得到的运行后效果如下:
我的“第二次尝试”的代码如下:
package c_port_packageDoctor;import java.awt.FontMetrics;import javax.swing.JLabel;public class CustomerCompliainUI {
String longString = "a very very very very very very very very long string";
StringBuilder builder = new StringBuilder("<html>");
char[] chars = longString.toCharArray();
FontMetrics fontMetrics = jLabel.getFontMetrics(jLabel.getFont());
for (int beginIndex = 0, limit = 1;
limit++;
){
System.out.println(beginIndex + " " + limit + " " + (beginIndex + limit));
if (fontMetrics.charsWidth(chars, beginIndex, limit) < jLabel.getWidth()) {
if (beginIndex + limit < chars.length) {
continue;
}
builder.append(chars, beginIndex, limit);
break;
}
builder.append(chars, beginIndex, limit - 1).append("<br/>");
beginIndex <SPAN style="COLOR: #ff0000">+=</SPAN> limit - 1;
limit = 1;
}
builder.append("</html>");
jLabel1.setText(builder.toString());
}
得到的运行后的效果如下:
希望高手点拨:
在我的上述文字的面向用户的输出背景开发需求下,我应该如何做,能够解决:
1.采用JLabel标签作为显示上述文本的载体,能够进行:
1>.将上述文本进行“自动换行”?
2>.将上述文本进行“指定位置换行”?
2.采用JTextArea作为显示上述文本的载体,能够进行:
1>.将上述文本进行“指定位置换行”?
的开发需求的实现..?
希望高手能够将您的讲解,落实到代码行上....
诚挚地等待高手的点拨!!
一百分奉上!!
一位日日夜夜向着理想奔跑的筑梦者
2013年8月20日中午13点41分SwingJava SEJava调试Swing控件控制
我是一名学习软件工程的学生,我想开发一个:
让我的系统中的用户,能够向“系统投诉”系统的使用后用户体验,并且能够进行“投诉为自己服务的系统员工的工作满意度”的面板,添加到我的一个CS结构的作品中去.
我的代码如下:
(第一套)
package c_port_packageDoctor;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.text.View;public class CustomerComplainUI extends JFrame{ /**
*
*/
private static final long serialVersionUID = 1L;
JPanel jp = new JPanel();
Font fnt1 = new Font("黑体",0,18);
Font fnt2 = new Font("黑体",0,18);
Font fnt3 = new Font("黑体",0,18);
JTextArea jta = new JTextArea();
JLabel jL0 = new JLabel("请将您的投诉信,发至这个信箱:“[email protected]”,并且遵守下文中的3个条件。");
JLabel jL1 = new JLabel(""); public static void main(String[] args){
new CustomerComplainUI();
}
public CustomerComplainUI() {
// TODO Auto-generated constructor stub
jp.setLayout(new BorderLayout());
int maxWidth = 100; //限制的宽度
JLabel lbl = new JLabel("<html>请将您的投诉信,发至这个信箱:“[email protected]”,并且遵守下文中的3个条件。/n1.请您在邮件中写上系统员工的工号,和,2.您在结单时所得到的单号,并且,3.邮件的长度,需要达到800个字以上的程度,经过系统的验证,如果您提供的信息属实,系统将把本员工的系统积分,减除一分。如果本系统员工的工作对您造成了损失,本系统,将会把该员工的本单报酬,扣除。如果本系统的员工经查对您的经济,物质造成了损害并且责任在本系统的员工这一方的话。本系统,会包赔您的损失。</html>");
javax.swing.text.View v = javax.swing.plaf.basic.BasicHTML.createHTMLView(lbl, lbl.getText());
v.setSize(maxWidth, Integer.MAX_VALUE);
int h = (int) v.getMinimumSpan(View.Y_AXIS); //这是取得的高度
lbl.setPreferredSize(new Dimension(maxWidth, h));
jp.add(lbl,BorderLayout.NORTH);
this.add(jp);
this.setBounds(400,300,400,300);
this.setVisible(true);
}}
点击“运行”后,得到的运行后效果如下:
我的“第二次尝试”的代码如下:
package c_port_packageDoctor;import java.awt.FontMetrics;import javax.swing.JLabel;public class CustomerCompliainUI {
String longString = "a very very very very very very very very long string";
StringBuilder builder = new StringBuilder("<html>");
char[] chars = longString.toCharArray();
FontMetrics fontMetrics = jLabel.getFontMetrics(jLabel.getFont());
for (int beginIndex = 0, limit = 1;
limit++;
){
System.out.println(beginIndex + " " + limit + " " + (beginIndex + limit));
if (fontMetrics.charsWidth(chars, beginIndex, limit) < jLabel.getWidth()) {
if (beginIndex + limit < chars.length) {
continue;
}
builder.append(chars, beginIndex, limit);
break;
}
builder.append(chars, beginIndex, limit - 1).append("<br/>");
beginIndex <SPAN style="COLOR: #ff0000">+=</SPAN> limit - 1;
limit = 1;
}
builder.append("</html>");
jLabel1.setText(builder.toString());
}
得到的运行后的效果如下:
希望高手点拨:
在我的上述文字的面向用户的输出背景开发需求下,我应该如何做,能够解决:
1.采用JLabel标签作为显示上述文本的载体,能够进行:
1>.将上述文本进行“自动换行”?
2>.将上述文本进行“指定位置换行”?
2.采用JTextArea作为显示上述文本的载体,能够进行:
1>.将上述文本进行“指定位置换行”?
的开发需求的实现..?
希望高手能够将您的讲解,落实到代码行上....
诚挚地等待高手的点拨!!
一百分奉上!!
一位日日夜夜向着理想奔跑的筑梦者
2013年8月20日中午13点41分SwingJava SEJava调试Swing控件控制
jf.pack();
jf.setSize(200, 200);
JPanel jp = new JPanel();
jf.add(jp);
JTextArea jTextArea = new JTextArea("A very very very very " +
"very very very very very very very very " +
"very very very very very very very very " +
"very very long string");
jTextArea.setSize(180, 180);
jTextArea.setBackground(null);//背景透明
jTextArea.setEditable(false);//不可编辑
jTextArea.setLineWrap(true);//自动换行
jTextArea.setWrapStyleWord(true);//根据单词换行
jp.add(jTextArea);
jf.setVisible(true);
jf.setDefaultCloseOperation(3);
指定位置换行的话,试试看在指定位置插入换行符能行不
You Are My BigBrother!!
fangmingshijie小妹,您对我的帮助,也是一直让我念念不忘的..
但是,希望您下回能够将您的回答,再细化一些...
wangyongc,你的答案,我不做评论。
谢谢上面三位高手的点拨!!
谢谢CSDN的平台!!
CSDN!!加油!!!!