图片展示
代码部分
我的想法是先把这些组件都变成方法,然后再构造方法里调用,之后我用的数据库是sqlite这个比较轻便,下俩包然后再写个路径就能用了,下面是我的全局变量,然后deviceDao是用来处理sql的,这次我就不写了,有点麻烦,model是用来给表添加数据的,JTextField是一个写入框MyButtonRenderer 这个是重写JButton,借鉴了大佬写的然后自己在修改的,derviceManagerPlus 这个是我的这个类,这个是为之后的修改和删除做准备,NormalButton 这个也是重写的JButton,是可以添加图片的,JTable 这个是表就是我上面的’编号,设备名,工作区’什么的,JFrame 就是jfram容器了
private DefaultTableModel model;
private JTextField work;
private JTextField name;
private JTextField code;
private MyButtonRenderer updateRederer;
private MyButtonRenderer deleteRederer;
private DerviceManagerPlus derviceManagerPlus = this;
private NormalButton diyButtonCollect;
private NormalButton diyButtonManage;
private NormalButton diyButtonConfig;
private JTable table;
private JFrame jFrame;
这个是我写的JFrame方法设置表题,可以关闭,禁止最大化和最小化,设置界面的值为固定大小
public JFrame baseJframe(){
JFrame jFrame = new JFrame();
jFrame.setTitle("设备管理");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setLayout(null);
Dimension d = new Dimension();
JPanel jp = new JPanel();
jFrame.pack();
d.setSize(1431, 811);
jFrame.setResizable(false);
jFrame.setMinimumSize(d);
jFrame.setBounds(255, 255, 345, 290);
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
jFrame.toFront();
return jFrame;
}
设置一个二级容器,用来写背景的
public Container baseContainer(JFrame jf){
Container container = jf.getContentPane();
return container;
}
这个是写按钮的,就是那个添加按钮,这个其实可以不用写死,不过还是算了就一个按钮还要传参添麻烦了,就不写了,
public JButton addButton(){
JButton addbutton = new JButton("添加");
Dimension d = new Dimension();
d.setSize(1160, 195);
addbutton.setPreferredSize(d);
addbutton.setBounds(1160, 195,100, 30);
//设置字体
Font addbuttonFont = new Font("宋体", Font.PLAIN, 20);
//设置字体颜色
addbutton.setForeground(new Color(255, 255, 255));
addbutton.setFont(addbuttonFont);
//设置背景颜色
addbutton.setBackground(new Color(84, 123, 214));
return addbutton;
}
这个是我自己写的button可以传图片就是上面的设备采集那些图片
public NormalButton diyButton(String path,String text,int x,int y,int width,int height,Color color){
NormalButton diy = new NormalButton(path,text);
diy.setBounds(x,y,width,height);
diy.setBackground(color);
return diy;
}
这个是我设置背景颜色的,就写成传参的了,这个背景,就是我的上面的和下面的蓝色部分
public JLabel jLabel(int x,int y,int width,int height,Color color,boolean isOpaque){
JLabel jl1BackgroundTopAndDown = new JLabel();
jl1BackgroundTopAndDown.setBackground(color);
jl1BackgroundTopAndDown.setOpaque(isOpaque);
jl1BackgroundTopAndDown.setBounds(x, y, width, height);
return jl1BackgroundTopAndDown;
}
这个,是我表上面的那三个框左面的几个字,什么名称编号什么的,这个吧isopaque改为false就是透明的了,text是显示的字
public JLabel jLabel(int x,int y,int width,int height,Color color,boolean isOpaque,String text){
JLabel jl1BackgroundTopAndDown = new JLabel(text);
jl1BackgroundTopAndDown.setBackground(color);
jl1BackgroundTopAndDown.setOpaque(isOpaque);
jl1BackgroundTopAndDown.setBounds(x, y, width, height);
// jf.getContentPane().add(sc, BorderLayout.CENTER);
Font f = new Font("宋体", Font.BOLD, 20);
jl1BackgroundTopAndDown.setFont(f);
return jl1BackgroundTopAndDown;
}
这个是我那三个写入框的设置,位置框里的颜色,和字体的大小颜色,是否可编辑
public JTextField textField(int x, int y,int width,int height,Color fontColor,Color backgroundColor){
JTextField jTextField = new JTextField();
jTextField.setFont( new Font("宋体", Font.PLAIN, 15));
jTextField.setForeground(fontColor);