Java 好看的label-textfield(-button)布局
来源:互联网 发布:msqrd软件安卓版 编辑:程序博客网 时间:2024/04/30 01:10
class myBorderJPanel extends JPanel{ private TitledBorder titledborder; private JPanel panel = new JPanel(); myBorderJPanel(String title, GridLayout gridlayout){ titledborder = BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder( EtchedBorder.LOWERED), title); titledborder.setTitleFont(new Font("Georgia",Font.BOLD,20)); titledborder.setTitleJustification(TitledBorder.LEFT); titledborder.setTitlePosition(TitledBorder.DEFAULT_POSITION); setBorder(BorderFactory.createEmptyBorder(0,10,10,10)); panel.setLayout(gridlayout); panel.setBorder(titledborder); add(panel); } void addC(Component c){ c.setFont(new Font("Georgia",Font.BOLD,20)); panel.add(c); }}
使用:
myBorderJPanel panel1 = new myBorderJPanel("rong",new GridLayout(3,2)); panel1.addC(new JLabel("nx =")); panel1.addC(new JTextField(5)); panel1.addC(new JLabel("nz =")); panel1.addC(new JTextField(5)); panel1.addC(new JLabel("nz =")); panel1.addC(new JTextField(5));
效果截图:
以上截图代码:
import java.awt.*;import java.awt.event.*;import javax.swing.BorderFactory;import javax.swing.border.Border;import javax.swing.border.TitledBorder;import javax.swing.border.EtchedBorder;import javax.swing.ImageIcon;import javax.swing.JTabbedPane;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.*;class Demo{ public static void main(String[]args){ JFrame frame = new JFrame("BorderDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myBorderJPanel panel1 = new myBorderJPanel("File"); panel1.addC(new JTextField(15),0,0,5,1); panel1.addC(new JButton(new ImageIcon("picture/ButtonImg/folder16.png")),5,0,1,1); myBorderJPanel panel2 = new myBorderJPanel(""); panel2.addC(new JLabel("nx"),0,0,1,1); panel2.addC(new JTextField(5),1,0,1,1); panel2.addC(new JLabel("nz"),0,1,1,1); panel2.addC(new JTextField(5),1,1,1,1); myBorderJPanel panel3 = new myBorderJPanel(""); panel3.addC(new JLabel("dx"),0,0,1,2); panel3.addC(new JTextField(5),1,0,3,2); panel3.addC(new JLabel("dz"),0,2,1,2); panel3.addC(new JTextField(5),1,2,3,2); myBorderJPanel panel4 = new myBorderJPanel("++++"); panel4.addC(panel2,0,0,1,1); panel4.addC(panel3,1,0,1,1); myBorderJPanel panel = new myBorderJPanel(""); panel1.setAlignmentX(1f); panel.addC(panel1,0,0,1,1); panel.addC(panel4,0,1,1,1); frame.add(panel); frame.pack(); frame.setVisible(true); }}class myBorderJPanel extends JPanel{ private TitledBorder titledborder; private JPanel panel = new JPanel(); private GridBagConstraints gc = new GridBagConstraints(); private GridBagLayout gridbag = new GridBagLayout(); myBorderJPanel(String title){ titledborder = BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder( EtchedBorder.LOWERED), title); titledborder.setTitleFont(new Font("Georgia",Font.BOLD,20)); titledborder.setTitleJustification(TitledBorder.LEFT); titledborder.setTitlePosition(TitledBorder.DEFAULT_POSITION); setBorder(BorderFactory.createEmptyBorder(6,6,6,6)); panel.setLayout(gridbag); panel.setBorder(titledborder); JPanel tmp = new JPanel(); tmp.add(panel); add(tmp); } void addC(JComponent c, int gridx, int gridy,int gridwidth,int gridheight){ gc.gridx = gridx; //x grid position gc.gridy = gridy; //y grid position gc.gridwidth = gridwidth; gc.gridheight = gridheight; gridbag.setConstraints(c, gc); c.setFont(new Font("Georgia",Font.BOLD,25)); panel.add(c); }}
以下是label-textfield(-button)布局
private GridBagConstraints makeGbc(int ix, int iz) { / * Copyright: https://stackoverflow.com/questions/4699892/how-to-set-the-component-size-with-gridlayout-is-there-a-better-way * / GridBagConstraints gbc = new GridBagConstraints(); gbc.gridwidth = 1; gbc.gridheight = 1; gbc.gridx = ix; gbc.gridy = iz; gbc.weightx = ix; gbc.weighty = 1.0; gbc.insets = new Insets(5, 5, 5, 5); gbc.anchor = (ix == 0) ? GridBagConstraints.LINE_START : GridBagConstraints.LINE_END; gbc.fill = GridBagConstraints.HORIZONTAL; return gbc; }
使用方法:
GridBagConstraints gbc = makeGbc(0, 0); parasPanel.add(labeltitle,gbc); JPanel p0 =new JPanel(); p0.add(textfieldtitle); p0.add(buttontitle); p0.setBorder(BorderFactory.createEtchedBorder()); gbc = makeGbc(1, 0); parasPanel.add(p0, gbc);
效果截图:
阅读全文
0 0
- Java 好看的label-textfield(-button)布局
- UI创建基本的Label TextField Button
- 1、Button、Label和Textfield的交互
- label textField button 一些用法
- Label Button和textfield组合
- 21.View,Label,Button,TextField
- 用Button连接TextField和Label
- 好看的网站布局
- 几个好看的button样式
- 几个好看的button样式
- 几个好看的button样式
- 几个好看的button样式
- IOS学习四:基础控件Label,textfield,button等使用
- iOS 中view label button textField 随机颜色
- 好看的网站布局2
- 好看的网站布局3
- 好看的网站布局4
- 好看的网站布局5
- GIT添加代码到服务器操作
- Linux进程通信共享内存
- 抽象工厂模式
- springsecurity4.2入门完整实例
- js判断json对象是否为空
- Java 好看的label-textfield(-button)布局
- django static_root static_url media_root mdia_url详解
- 功分器,双工器,耦合器,合路器,环形器
- Spring Security# Multiple DaoAuthenticationProvider
- java之枚举的使用方法
- 《Windows核心编程》读书笔记四 进程
- Lua 数据类型
- 挂载硬盘,提示 mount: unknown filesystem type 'LVM2_member'的解决方案
- CentOS7虚拟机设置静态IP外网访问