java如何在使用了GridBagLayout的JDesktopPane中设置背景图片? 如果设置

java如何在使用了GridBagLayout的JDesktopPane中设置背景图片? 如果设置,第1张

package windows

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”表示从第一列开始,这与编程语言中一维数组的赋值情况类似。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11926530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存