java 设置窗口背景图片还有设置按钮的字体格式例如大小等等·· 25
importjava.awt.event.WindowAdapter;importjava.awt.event.ActionListener;importjava.awt...
import java.awt.event.WindowAdapter ;
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextField ;
import javax.swing.JPasswordField ;
class LoginCheck{
private String name ;
private String password ;
public LoginCheck(String name,String password){
this.name = name ;
this.password = password ;
}
public boolean validate(){
if("mwb".equals(name)&&"mwb".equals(password)){
return true ;
}else{
return false ;
}
}
};
class ActionHandle{
private JFrame frame = new JFrame("Logion") ;
private JButton submit = new JButton("登陆");
private JButton reset = new JButton("重置");
private JLabel nameLab = new JLabel("用户名:") ;
private JLabel passLab = new JLabel("密 码:") ;
private JLabel infoLab = new JLabel("登陆系统") ;
private JTextField nameText = new JTextField(10) ;
private JPasswordField passText = new JPasswordField();
public ActionHandle(){
Font fnt = new Font("Serief",Font.ITALIC + Font.BOLD,12) ;
infoLab.setFont(fnt) ; // 设置标签的显示文字
submit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==submit){
String tname = nameText.getText() ;
String tpass = new String(passText.getPassword()) ;
LoginCheck log = new LoginCheck(tname,tpass) ;
if(log.validate()){
infoLab.setText("登陆成功,欢迎光临!") ;
}else{
infoLab.setText("登陆失败,错误的用户名或密码!") ;
}
}
}
}) ;
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==reset){
nameText.setText("") ;
passText.setText("") ;
infoLab.setText("用户登陆系统") ;
}
}
}) ;
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(1) ;
}
}) ; // 加入事件
frame.setLayout(null) ;
nameLab.setBounds(650,300,60,20) ;
passLab.setBounds(650,325,60,20) ;
infoLab.setBounds(650,360,220,30) ;
nameText.setBounds(710,300,100,20) ;
passText.setBounds(710,325,100,20) ;
submit.setBounds(810,300,60,20) ;
reset.setBounds(810,325,60,20) ;
frame.add(nameLab) ;
frame.add(passLab) ;
frame.add(infoLab) ;
frame.add(nameText) ;
frame.add(passText) ;
frame.add(submit) ;
frame.add(reset) ;
frame.setSize(280,130) ;
frame.setBackground(Color.WHITE) ;
frame.setSize(1000,500);
frame.setLocation(200,150) ;
frame.setVisible(true) ;
}
}
public class Login{
public static void main(String args[]){
new ActionHandle() ;
}
} 展开
import java.awt.event.ActionListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.ActionEvent ;
import java.awt.Color ;
import java.awt.Font ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
import javax.swing.JTextField ;
import javax.swing.JPasswordField ;
class LoginCheck{
private String name ;
private String password ;
public LoginCheck(String name,String password){
this.name = name ;
this.password = password ;
}
public boolean validate(){
if("mwb".equals(name)&&"mwb".equals(password)){
return true ;
}else{
return false ;
}
}
};
class ActionHandle{
private JFrame frame = new JFrame("Logion") ;
private JButton submit = new JButton("登陆");
private JButton reset = new JButton("重置");
private JLabel nameLab = new JLabel("用户名:") ;
private JLabel passLab = new JLabel("密 码:") ;
private JLabel infoLab = new JLabel("登陆系统") ;
private JTextField nameText = new JTextField(10) ;
private JPasswordField passText = new JPasswordField();
public ActionHandle(){
Font fnt = new Font("Serief",Font.ITALIC + Font.BOLD,12) ;
infoLab.setFont(fnt) ; // 设置标签的显示文字
submit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==submit){
String tname = nameText.getText() ;
String tpass = new String(passText.getPassword()) ;
LoginCheck log = new LoginCheck(tname,tpass) ;
if(log.validate()){
infoLab.setText("登陆成功,欢迎光临!") ;
}else{
infoLab.setText("登陆失败,错误的用户名或密码!") ;
}
}
}
}) ;
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==reset){
nameText.setText("") ;
passText.setText("") ;
infoLab.setText("用户登陆系统") ;
}
}
}) ;
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(1) ;
}
}) ; // 加入事件
frame.setLayout(null) ;
nameLab.setBounds(650,300,60,20) ;
passLab.setBounds(650,325,60,20) ;
infoLab.setBounds(650,360,220,30) ;
nameText.setBounds(710,300,100,20) ;
passText.setBounds(710,325,100,20) ;
submit.setBounds(810,300,60,20) ;
reset.setBounds(810,325,60,20) ;
frame.add(nameLab) ;
frame.add(passLab) ;
frame.add(infoLab) ;
frame.add(nameText) ;
frame.add(passText) ;
frame.add(submit) ;
frame.add(reset) ;
frame.setSize(280,130) ;
frame.setBackground(Color.WHITE) ;
frame.setSize(1000,500);
frame.setLocation(200,150) ;
frame.setVisible(true) ;
}
}
public class Login{
public static void main(String args[]){
new ActionHandle() ;
}
} 展开
1个回答
展开全部
要加背景的话,可以先声明一个背景JPanel,在这个JPanel上面画上图片,可以像这样做
JPanel panel = new JPanel() {
@Override
protected void printComponent(Graphics arg0) {
// TODO Auto-generated method stub
super.printComponent(arg0);
arg0.drawImage(img, x, y, width, height, observer);
}
};
你也可以自己继承JPanel类,然后把图片、大小作为参数传递,然后构造这样的JPanel。
然后把你放在frame上的东西都放在这个JPanel上。
设置字体你的方法是正确的.setFont(new Font("微软雅黑", Font.LAYOUT_NO_LIMIT_CONTEXT, 14));,如果想要都设置字体好像只能对每个组件都设置。
JPanel panel = new JPanel() {
@Override
protected void printComponent(Graphics arg0) {
// TODO Auto-generated method stub
super.printComponent(arg0);
arg0.drawImage(img, x, y, width, height, observer);
}
};
你也可以自己继承JPanel类,然后把图片、大小作为参数传递,然后构造这样的JPanel。
然后把你放在frame上的东西都放在这个JPanel上。
设置字体你的方法是正确的.setFont(new Font("微软雅黑", Font.LAYOUT_NO_LIMIT_CONTEXT, 14));,如果想要都设置字体好像只能对每个组件都设置。
追问
不懂···球代码····
追答
不懂也要尝试自己理解啊。
先自己写一个类
public class ImagePanel extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
private Image image;
public ImagePanel() {
}
public ImagePanel(Image image){
this.image = image;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
@Override
public void paintBorder(Graphics g) {
}
}
然后在你的窗口中生成这样一个ImagePanel
JPanel panel = new ImagePanel(ImageIO.read(new File(
"img/login-bg.png")));
参数中引号里面的内容是你图片的url(路径),我这里是根目录下的img文件夹下的一个图片。
你不是有个JFrame吗?把你之前直接放在JFrame上面的东西现在放在这个panel上面。布局什么的自己弄。
在把这个panel加到你的frame上就行了,
就是frame.add(panel);
自己动手试试!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询