java设置组件透明,文字格式。

​import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public  class UIinterface extends JFrame {
	JLayeredPane pane = new JLayeredPane();//分层网格
	JLabel label;
	JPanel panel1 = new JPanel();
	JPanel panel2 = new JPanel();
	JPanel panel3 = new JPanel();
	JTextField field1 = new JTextField("账号");
	JTextField field2 = new JTextField("密码");
	JButton Land = new JButton("登陆");
	JButton register = new JButton("注册");
	ImageIcon image;
	/**
	 * 
	 */
	public UIinterface() {
		image = new ImageIcon("jpp/蜘蛛侠.jpg");
		//设置字体格式和大小
        field1.setFont(new Font("宋体",Font.PLAIN,30));
        //设置字体颜色
        field1.setForeground(Color.BLUE);
        field2.setFont(new Font("宋体",Font.PLAIN,30));
        field2.setForeground(Color.BLUE);
        Land.setFont(new Font("宋体",Font.PLAIN,20));
        Land.setForeground(Color.darkGray);
        register.setFont(new Font("宋体",Font.PLAIN,20));
        register.setForeground(Color.darkGray);
        //设置组件透明
        field1.setOpaque(false);
        field2.setOpaque(false);
        Land.setOpaque(false);
        register.setOpaque(false);
        panel1.setOpaque(false);
        panel2.setOpaque(false);
        panel3.setOpaque(false);
        
		label = new JLabel(image);		//把背景图片添加到标签里

		panel1.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());	//把标签设置为和图片等高等宽

		panel1 = (JPanel)this.getContentPane();	//把我的面板设置为内容面板
		
		panel1.add(label);
		
		panel2.setLayout(new GridLayout(2,1));
		panel2.setBounds(50, 100, 350, 80);
				
		panel2.add(field1);
		panel2.add(field2);
		
		panel3.setBounds(50,250,350,40);
		
		panel3.add(Land);
		panel3.add(register);
		
		Land.setSize(20,30);
		register.setSize(20,30);
		
		pane.add(panel1,JLayeredPane.DEFAULT_LAYER);//带有标签的面板放在最底层
		pane.add(panel2,JLayeredPane.DRAG_LAYER);
		pane.add(panel3,JLayeredPane.POPUP_LAYER);
		

		this.setTitle("QQ");
		this.setBounds(100,100,image.getIconWidth(), image.getIconHeight());
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		this.setLayeredPane(pane);
		this.setVisible(true);
	}

	
}
​

 

比较丑的一个页面,主要在于学习新内容。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.font.*; public class Clipping extends Canvas { public Clipping() { setBackground(Color.white); } public void paint(Graphics g) { Graphics2D g2; g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); int w = getSize().width; int h = getSize().height; FontRenderContext frc = g2.getFontRenderContext(); Font f = new Font("Helvetica",Font.BOLD,w/8); String s = new String("By"); TextLayout tl = new TextLayout(s, f, frc); float sw = (float) tl.getBounds().getWidth(); AffineTransform transform = new AffineTransform(); transform.setToTranslation(w/2-sw/2,h/2); Shape shape = tl.getOutline(transform); g2.setClip(shape); g2.setColor(Color.blue); g2.fill(shape.getBounds()); g2.setColor(Color.yellow); for (int j = shape.getBounds().y; j < shape.getBounds().y + shape.getBounds().height; j=j+3) { Line2D line = new Line2D.Float( 0.0f, (float) j, (float) w, (float) j); g2.draw(line); } } public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} public void windowClosed(WindowEvent e) {System.exit(0);} }; Frame f = new Frame("2D Text"); f.addWindowListener(l); f.add("Center", new Clipping()); f.pack(); f.setSize(new Dimension(400, 300)); f.show(); } } *********************************************

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值