本文对java自带的javax.swing.*包下有图形开发组件,今天就对基本控件做些基本介绍,
public class MainFrame extends JFrame {
public MainFrame() {
setSize(500, 450);//设置窗口大小
setTitle("我是窗口");//设置标题
ImageIcon imageIcon = new ImageIcon("image/icon.png");
setIconImage(imageIcon.getImage());//设置图片
this.setLayout(null);//设置里面控件的布局方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击关闭对出程序
}
public static void main(String[] args) {
MainFrame mainFrame = new MainFrame();
mainFrame.setVisible(true);//显示窗口
}
}
效果如下
这样就显示了一个窗口,用add方法可以添加控件,这里setLayout有很多种比较常见的有BorderLayout,GridLayout,FlowLayout,CardLayout等,后面单独讲吧,比较多.这里设置为null表示使用绝对坐标,要不然控件都为全屏模式
注意:setVisible()方法应该在所有控件设置上去后调用,否者控件不会显示.
public static void main(String[] args) {
MainFrame mainFrame = new MainFrame();
JDialog dialog = new JDialog(mainFrame);
dialog.setTitle("对话框");
dialog.setSize(300,200);
dialog.setModal(true);
mainFrame.setVisible(true);
dialog.setVisible(true);
}
也可以使用JOptionPane显示各种不同的Dialog,方便使用
public class HomePanel extends JPanel {
public HomePanel() {
setBounds(60,80,400,300);//设置位置和大小
setLayout(null);
setBackground(Color.BLACK);
JButton b = new JButton("按钮");
b.setBounds(50,90,80,60);//设置位置和大小
add(b);
}
}
将该窗口显示在上面的窗口效果如下
panel有很多种:ContentPane、SplitPanel、JScrollPanel、TabbedPanel自己可以试试
public class HomePanel extends BasePanel {
public HomePanel() {
setBounds(60, 80, 400, 300);
setLayout(null);
setBackground(Color.BLACK);
JButton b = new JButton("按钮");
b.setForeground(new Color(0xFFFFFF));//文字颜色
b.setPreferredSize(new Dimension(60, 80));//优先的大小
b.setFont(new Font("宋体", Font.PLAIN, 20));//文字字体
b.setBounds(50, 90, 100, 60);//位置和大小
b.setBackground(new Color(0x3A92FF));//背景
b.setIcon(new SortArrowIcon(true, Color.RED));//设置图标
b.setRolloverIcon(new MetalComboBoxIcon());//设置鼠标停留图标(要先setIcon)
b.setPressedIcon(new SortArrowIcon(false, Color.GREEN));//点击时的图标(要先setIcon)
b.setToolTipText("这是个按钮");//鼠标停留显示的文字
b.setHorizontalTextPosition(SwingConstants.CENTER);//文字水平方向位置
b.setVerticalTextPosition(SwingConstants.TOP);//文字垂直方向位置
b.setBorder(new BevelBorder(BevelBorder.LOWERED, new Color(0x83D944), new Color(0xFD315D)));//边框
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
// TODO: 2018/12/14 点击监听
}
}
});
add(b);
}
}
public class HomePanel extends BasePanel {
public HomePanel() {
setBounds(60, 80, 400, 300);
setLayout(null);
setBackground(Color.BLACK);
JLabel label = new JLabel();
label.setLayout(null);
label.setBackground(Color.GREEN);
label.setSize(200,30);
label.setText("这是文字");
label.setForeground(new Color(0x3A92FF));
label.setFont(new Font("仿宋",Font.ITALIC,30));
JLabel lImg = new JLabel();
lImg.setLocation(0,100);
lImg.setSize(200,100);
lImg.setIcon(new ImageIcon(ImageManage.getImage("add.png")));
add(label);
add(lImg);
}
}