import java.awt.BorderLayout
import java.awt.CardLayout
import java.awt.Color
import java.awt.Container
import java.awt.Dimension
import java.awt.FlowLayout
import java.awt.Font
import java.awt.GridLayout
import java.awt.Image
import java.awt.Toolkit
import java.awt.font.*
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.sql.Connection
import java.sql.PreparedStatement
import java.sql.ResultSet
import java.sql.SQLException
import javax.swing.ImageIcon
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JOptionPane
import javax.swing.JPanel
import javax.swing.JPasswordField
import javax.swing.JRootPane
import javax.swing.JTextField
import util.ConnectionDB
public class Location extends JFrame implements ActionListener{
//用户名的文本框
JTextField JTF = new JTextField(20)
//密码的文本行
JPasswordField JPF = new JPasswordField(25)
Location(){
//设置窗体标题
this.setTitle("用户登录")
//设置窗体大小
this.setSize(200, 200)
//设置背景色
this.setBackground(java.awt.Color.lightGray)
//窗体关闭时结束程序
this.setDefaultCloseOperation(EXIT_ON_CLOSE)
//获取内容窗格
Container jf_con = this.getContentPane()
//设置布局管理器
jf_con.setLayout(new BorderLayout())
//获得图片对象
ImageIcon backIcon=new ImageIcon("background.jpg")
//把图片绘制到背景面板上
JLabel backLabel=new JLabel(backIcon)
// 创建背景标签
backLabel.setSize(backIcon.getIconWidth(), backIcon.getIconHeight())
backLabel.setLocation(0, 0)
// 设置标签定位
backLabel.setLayout(new GridLayout(4,1))
//建立登录和注册按钮
JButton JB[] = new JButton[2]
JB[0] = new JButton("登录")
JB[1] = new JButton("注册新账号")
for(int i=0i<2i++)
{
JB[i].setForeground(Color.red)
Font font =new Font("黑体",0,16)
JB[i].setFont(font)
JB[i].addActionListener(this)
}
//建立用户名,注册和密码标签
JLabel JL[] = new JLabel[2]
JL[0] = new JLabel("用户名")
JL[1] = new JLabel("密码")
//建立面板
JPanel JP[] = new JPanel[4]
//用户名面板
JP[0] = new JPanel()
JP[0].setLayout(new GridLayout(2,1))
JP[0].add(JL[0])
JP[0].add(JTF)
//密码面板
JP[1] = new JPanel()
JP[1].setLayout(new GridLayout(2,1))
JP[1].add(JL[1])
JP[1].add(JPF)
//登录按钮面板
JP[2] = new JPanel(new FlowLayout())
JP[2].add(JB[0])
//注册按钮面板
JP[3] = new JPanel(new FlowLayout())
JP[3].add(JB[1])
//把面板的背景设置为透明
for(int i=0i<4i++)
JP[i].setOpaque(false)
//把所有面板放置到窗体上
backLabel.add(JP[0])
backLabel.add(JP[1])
backLabel.add(JP[2])
backLabel.add(JP[3])
jf_con.add(backLabel)
//把窗口移到屏幕中间
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize()
int x=(dim.width-200)/2
int y=(dim.height-100)/2
this.setLocation(x, y)
//去除窗体的最大化键
this.setResizable(false)
this.setVisible(true)
}
public static void main(String[] args){
new Location()
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton j=(JButton)e.getSource()
String x=null
x=j.getText()
if(x=="登录"){
this.setVisible(false)
Connection con=ConnectionDB.getConnection()
String sql="select L_Pass,L_Degree from Location where L_Location=?"
PreparedStatement ps = null
try {
ps = con.prepareStatement(sql)
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace()
}
ResultSet rs=null
try {
ps.setString(1, JTF.getText())
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace()
}
try {
rs=ps.executeQuery()
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace()
}
String pass = null
String degree = null
try {
while(rs.next()){
pass=rs.getString("L_Pass")
degree=rs.getString("L_Degree")
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace()
}
String s=new String(JPF.getPassword())
if(!s.equals(pass)){
JOptionPane.showMessageDialog(null, "用户名或密码错误","警告",JOptionPane.ERROR_MESSAGE)
this.setVisible(true)
JPF.setText(null)
}
else{
if("0".equals(degree))
System.out.println("Client")
else if("1".equals(degree))
new Administrator()
else if("2".equals(degree))
System.out.println("Others")
}
}
else if(x=="注册新账号"){
this.setVisible(false)
new Registration()
}
}
}
GridLayout布局怎么设置字体颜色这个涉及专业知识,您需要知道相关的java代码。找到单元格上面的背景设置颜色,有一个是设置字体颜色的。android 4.0 控件。GridLayout所切割出来的版面就如同表格一般整齐,加入的组件会按顺序由左至右、由上至下摆放,所以无法直接指定要摆放的区域。
GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。而GridLayout使用的其实是跟LinearLayout类似的API,只不过是修改了一下相关的标签而已,所以对于开发者来说,掌握GridLayout还是很容易的事情。GridLayout的布局策略简单分为以下三个部分:
首先它与LinearLayout布局一样,也分为水平和垂直两种方式,默认是水平布局,一个控件挨着一个控件从左到右依次排列,但是通过指定android:columnCount设置列数的属性后,控件会自动换行进行排列。另一方面,对于GridLayout布局中的子控件,默认按照wrap_content的方式设置其显示,这只需要在GridLayout布局中显式声明即可
其次,若要指定某控件显示在固定的行或列,只需设置该子控件的android:layout_row和android:layout_column属性即可,但是需要注意:android:layout_row=”0”表示从第一行开始,android:layout_column=”0”表示从第一列开始,这与编程语言中一维数组的赋值情况类似。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)