扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
lz 你好
为岱岳等地区用户提供了全套网页设计制作服务,及岱岳网站建设行业解决方案。主营业务为成都做网站、网站建设、岱岳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
这个很好实现的 就用绘图机制绘制一下就行了 绘制文字和横线
代码如下:
import javax.swing.*;
import java.awt.*;
public class StringLine extends JFrame{
private MyPanel mp;
public StringLine(){
super("StringLine");
mp = new MyPanel();
getContentPane().add(mp);
setLocation(200,100);
setSize(100,100);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(3);
}
public static void main (String[] args) {
new StringLine();
}
}
//自定义面板类
class MyPanel extends JPanel{
//重写paintComponent方法
public void paintComponent(Graphics g){
g.drawString("价格 : 2.00元", 5,10);//绘制文字
g.drawLine(5,5,75,5);//绘制横线
}
}
用java绘制弧形文字的方法是调用java 2d图形处理的api实现的。
完整代码如下:
// 引入需要的jar包
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
//定义一个类
public class FontPanel extends JPanel {
//定义一个画板,入参是图形g
public void paintComponent(Graphics g) {
super.paintComponent(g);
Font f = new Font("SansSerif", Font.BOLD, 14); 设置字体加粗
Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);设置字体加粗,斜体
FontMetrics fm = g.getFontMetrics(f); //得到当前的font metrics
FontMetrics fim = g.getFontMetrics(fi);//得到当前的font metrics
String s1 = "Java ";
String s2 = "Source and Support"; 定义字符串
String s3 = " java 字体变形学习";
int width1 = fm.stringWidth(s1); 设置宽度
int width2 = fim.stringWidth(s2);
int width3 = fm.stringWidth(s3);
Dimension d = getSize(); 设置二维图形的维度
int cx = (d.width - width1 - width2 - width3) / 2; 计算绘制字体的x轴
int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();计算绘制字体的y轴
g.setFont(f);
g.drawString(s1, cx, cy);
cx += width1;
g.setFont(fi);
g.drawString(s2, cx, cy);
cx += width2;
g.setFont(f);
g.drawString(s3, cx, cy);
}
main方法测试:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("NotHelloWorld2");
frame.setSize(350, 200);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new FontPanel());
frame.show();
}
}
运行结果:
用java绘制弧形文字的方法是调用java 贰d图形处理的api实现的。 完整代码如下: // 引入需要的jar包 import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; //定义一个类 public class FontPanel extends JPanel { //定义一个画板,入参是图形g public void paintComponent(Graphics g) { super.paintComponent(g); Font f = new Font("SansSerif", Font.BOLD, 依四); 设置字体加粗 Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 依四);设置字体加粗,斜体 FontMetrics fm = g.getFontMetrics(f); //得到当前的font metrics FontMetrics fim = g.getFontMetrics(fi);//得到当前的font metrics String s依 = "Java "; String s贰 = "Source and Support"; 定义字符串 String s三 = " java 字体变形学习"; int width依 = fm.stringWidth(s依); 设置宽度 int width贰 = fim.stringWidth(s贰); int width三 = fm.stringWidth(s三); Dimension d = getSize(); 设置二维图形的维度 int cx = (d.width - width依 - width贰 - width三) / 贰; 计算绘制字体的x轴 int cy = (d.height - fm.getHeight()) / 贰 + fm.getAscent();计算绘制字体的y轴 g.setFont(f); g.drawString(s依, cx, cy); cx += width依; g.setFont(fi); g.drawString(s贰, cx, cy); cx += width贰; g.setFont(f); g.drawString(s三, cx, cy); } main方法测试: public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("NotHelloWorld贰"); frame.setSize(三50, 贰00); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = frame.getContentPane(); contentPane.add(new FontPanel()); frame.show(); } } 运行结果
可使使用界面来解决的
javatable
1 /**
工具栏
JToolBar
采用从左开始的
FlowLayout
布局
*/
2 JToolBar toolBar = new JToolBar();
3 toolBar.setBorderPainted(false); //
不画边界
4 toolBar.setLayout(new FlowLayout(FlowLayout.LEFT));
5
6 /**
窗体采用动态的
BorderLayout
布局,通过获取工具栏或状态栏的复选标记
进行界面的动态调整
*/
7 JSplitPane splitPane = new JSplitPane();
8 splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT); //
设置统计窗口分隔条
的方向
9 splitPane.setDividerLocation(300); //
设置分隔条的位置
10 splitPane.setOneTouchExpandable(true);
11 JCheckBoxMenuItem toolBarItem = new JCheckBoxMenuItem("
工具栏
(T)",
true);
12 JLabel statusLabel = new JLabel("
当前统计目标
:");
13 JCheckBoxMenuItem statusBarItem = new JCheckBoxMenuItem("
状态栏
(S)",
true);
14 /**
设置系统窗体布局并动态设置工具栏和状态栏
*/
15 private void setLayout()
16 {
5
17 if (toolBarItem.getState() ' statusBarItem.getState())
18 {
19 this.getContentPane().add(BorderLayout.NORTH, toolBar);
20 this.getContentPane().add(BorderLayout.CENTER, splitPane);
21 this.getContentPane().add(BorderLayout.SOUTH, statusLabel);
22 }
23 else if (toolBarItem.getState() !statusBarItem.getState())
24 {
25 this.getContentPane().add(BorderLayout.NORTH, toolBar);
26 this.getContentPane().remove(statusLabel);
27 }
28 else if (statusBarItem.getState() !toolBarItem.getState())
29 {
30 this.getContentPane().add(BorderLayout.SOUTH, statusLabel);
31 this.getContentPane().remove(toolBar);
32 }
33 else if (!toolBarItem.getState() !statusBarItem.getState())
34 {
35 this.getContentPane().remove(toolBar);
36 this.getContentPane().remove(statusLabel);
37 }
38 this.show(); //
添加或移去组件后刷新界面
39 }
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流