用Java语言设计一个界面,

用Java语言设计一个界面,,第1张

首先:采用什么技术实现

java语言可以使用awt 和swing等技术实现图形界面

推荐使用Swing,因为Swing比AWT更专业,更漂亮,组件更丰富,功能更强大。

2   其次:分析采用什么布局

边界布局BorderLayout,配合表格布局GridLayout,既简单又美观

3   最后:分析需求中需要用的组件

学生姓名 学号  显示信息 需要用到文本框JTextField

单选按钮 需要用到组件 JRadioButton

复选框    需要用到组件 JCheckBox

组合框    需要用到组件 JComboBox

效果

参考代码如下

//导入所需要的包
import javaawtevent;
import javaxswingborder;
import javaxswing;
import javaawt;
public class ClassFrame extends JFrame {// 写一个类继承自JFrame 窗体
// 定义组件
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField tfName, tfNum, allInfo;
private JRadioButton rb1, rb2;
private JCheckBox cb1, cb2, cb3;
private JComboBox<String> t1, t2, t3;
public static void main(String[] args) {
EventQueueinvokeLater(new Runnable() {
public void run() {
try {
ClassFrame frame = new ClassFrame();// 创建一个窗口实例
framesetVisible(true);// 让该窗口实例可见
} catch (Exception e) {
eprintStackTrace();
}
}
});
}
/
  窗口属性的设置,内部组件的初始化
 /
public ClassFrame() {
setTitle("选课ing");//标题
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);// 设置关闭是退出JVM
setSize(450, 339);// 设置窗体大小
setLocationRelativeTo(null);// 窗体居中
contentPane = new JPanel();// 内容面板
contentPanesetBorder(new EmptyBorder(5, 5, 5, 5));
contentPanesetLayout(new BorderLayout(0, 0));// 设置布局
setContentPane(contentPane);
JPanel panel = new JPanel(new GridLayout(5, 1, 5, 10));//5行1列的表格布局
panelsetBorder(new TitledBorder(null, "", TitledBorderLEADING, TitledBorderTOP, null, null));
contentPaneadd(panel, BorderLayoutCENTER);//给panel添加边框
JPanel panel_1 = new JPanel();
paneladd(panel_1);
JLabel label = new JLabel("姓名");
panel_1add(label);
tfName = new JTextField();
panel_1add(tfName);
tfNamesetColumns(10);
JLabel label_2 = new JLabel("学号");
panel_1add(label_2);
tfNum = new JTextField();
tfNumsetColumns(10);
panel_1add(tfNum);
rb1 = new JRadioButton("男");
panel_1add(rb1);
rb1setSelected(true);//设置单选按钮中,默认选择的按钮
rb2 = new JRadioButton("女");
panel_1add(rb2);
ButtonGroup bts = new ButtonGroup();//单选按钮需要加入同一个ButonGroup中才能生效
btsadd(rb1);
btsadd(rb2);
JPanel panel_2 = new JPanel();
paneladd(panel_2);
cb1 = new JCheckBox("高等数学");
panel_2add(cb1);
t1 = new JComboBox<String>();
t1setModel(new DefaultComboBoxModel<String>(new String[] { "林老师", "赵老师", "孙老师" }));
panel_2add(t1);
JPanel panel_3 = new JPanel();
paneladd(panel_3);
cb2 = new JCheckBox("世界经济");
panel_3add(cb2);
t2 = new JComboBox<String>();
t2setModel(new DefaultComboBoxModel<String>(new String[] { "张老师", "刘老师" }));
panel_3add(t2);
JPanel panel_4 = new JPanel();
paneladd(panel_4);
cb3 = new JCheckBox("音乐赏析");
panel_4add(cb3);
t3 = new JComboBox<String>();
t3setModel(new DefaultComboBoxModel<String>(new String[] { "王老师", "周老师" }));
panel_4add(t3);
JPanel panel_5 = new JPanel();
paneladd(panel_5);
JButton jbOk = new JButton("确定");
panel_5add(jbOk);
JButton jbRest = new JButton("重填");
panel_5add(jbRest);
JPanel panelSouth = new JPanel();
contentPaneadd(panelSouth, BorderLayoutSOUTH);
JLabel labe = new JLabel("选课信息");
labesetHorizontalAlignment(SwingConstantsLEFT);
panelSouthadd(labe);
allInfo = new JTextField();
allInfosetColumns(30);
panelSouthadd(allInfo);
JPanel panelNorth = new JPanel();
contentPaneadd(panelNorth, BorderLayoutNORTH);
JLabel labelTitle = new JLabel("学生选课界面");
labelTitlesetForeground(ColorDARK_GRAY);
labelTitlesetFont(new Font("宋体", FontBOLD, 20));
panelNorthadd(labelTitle);
//给确定按钮添加事件处理代码
jbOkaddActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
StringBuilder info = new StringBuilder();
String name = tfNamegetText();
String num = tfNumgetText();
String sex;
if (rb1isSelected()) {
sex = "男";
} else {
sex = "女";
}
infoappend(name + num + sex);
if (cb1isSelected()) {
String c = cb1getText();
String t = t1getSelectedItem()toString();
infoappend(" " + c + t);
}
if (cb2isSelected()) {
String c = cb2getText();
String t = t2getSelectedItem()toString();
infoappend(" " + c + t);
}
if (cb3isSelected()) {
String c = cb3getText();
String t = t3getSelectedItem()toString();
infoappend(" " + c + t);
}
allInfosetText(infotoString());//把学生信息和选课信息放到文本框
}
});
//给重填按钮 设置事件处理代码
jbRestaddActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tfNamesetText("");
tfNumsetText("");
rb1setSelected(true);
cb1setSelected(false);
t1setSelectedIndex(0);
cb2setSelected(false);
t2setSelectedIndex(0);
cb3setSelected(false);
t3setSelectedIndex(0);
allInfosetText("");
}
});
}
}

以下为两个类
//文本框,密码框,按钮,标签
import javaawtFlowLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javasqlSQLException;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJOptionPane;
import javaxswingJPasswordField;
import javaxswingJTextField;
import comtestkaoshiconntest;
public class CM extends JFrame {
public CM() {
thissetTitle("古少毅Java");
thissetBounds(200, 200, 200, 200);
final JTextField jf1 = new JTextField(10);
final JPasswordField jf2 = new JPasswordField(10);
JButton jb1 = new JButton("确定");
JButton jb2 = new JButton("重置");
JLabel lb1 = new JLabel(" 帐户名");
JLabel lb2 = new JLabel(" 密码");
setLayout(new FlowLayout());
add(lb1);
add(jf1);
add(lb2);
add(jf2);
add(jb1);
add(jb2);
jb1addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
jb2addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jf1setText(null);
jf2setText(null);
}
});
thissetDefaultCloseOperation(EXIT_ON_CLOSE);
thissetVisible(true);
}
public static void main(String[] args) {
new CM();
}
}
//10以内的随机数
public class 随机数 {
public static void main(String[] args) {
double a = Mathrandom() 10;
a = Mathceil(a);
int randomNum = new Double(a)intValue();
switch (randomNum) {
case 1:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 2:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 3:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 4:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 5:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 6:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 7:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 8:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 9:
Systemoutprintln(randomNum+"是随机出来的");
break;
case 10:
Systemoutprintln(randomNum+"是随机出来的");
break;
}
}
}

概述

具体框架使用jframe,文本框组件:JTextField;密码框组件:JPasswordField;标签组件:JLabel;复选框组件:JCheckBox;单选框组件:JRadioButton;按钮组件JButton。

登录界面:

代码实例

import javaxswing;

import javaawt;   //导入必要的包

public class denglu extends JFrame{

JTextField jTextField ;//定义文本框组件

JPasswordField jPasswordField;//定义密码框组件

JLabel jLabel1,jLabel2;

JPanel jp1,jp2,jp3;

JButton jb1,jb2; //创建按钮

public denglu(){

jTextField = new JTextField(12);

jPasswordField = new JPasswordField(13);

jLabel1 = new JLabel("用户名");

jLabel2 = new JLabel("密码");

jb1 = new JButton("确认");

jb2 = new JButton("取消");

jp1 = new JPanel();

jp2 = new JPanel();

jp3 = new JPanel();

//设置布局

thissetLayout(new GridLayout(3,1));

jp1add(jLabel1);

jp1add(jTextField);//第一块面板添加用户名和文本框

jp2add(jLabel2);

jp2add(jPasswordField);//第二块面板添加密码和密码输入框

jp3add(jb1);

jp3add(jb2); //第三块面板添加确认和取消

//        jp3setLayout(new FlowLayout());  //因为JPanel默认布局方式为FlowLayout,所以可以注销这段代码

thisadd(jp1);

thisadd(jp2);

thisadd(jp3);  //将三块面板添加到登陆框上面

//设置显示

thissetSize(300, 200);

//thispack();

thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

thissetVisible(true);

thissetTitle("登陆");

}

public static void main(String[] args){

new denglu();

}

}

拓展内容

java swing包

Swing 是一个为Java设计的GUI工具包。

Swing是JAVA基础类的一部分。

Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种 *** 作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台上使用JAVA支持的任意面板。轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。

概念解析:

JFrame – java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。
JPanel – Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javaxswing 包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame窗体中。。

JLabel – JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。

JTextField –一个轻量级组件,它允许编辑单行文本。

JPasswordField – 允许我们输入了一行字像输入框,但隐藏星号() 或点创建密码(密码)

JButton – JButton 类的实例。用于创建按钮类似实例中的 "Login"。

//这是哪个背景类
import javaawtImage;
import javaawt;
import javaxswing;
public class ImageBack extends JPanel{
Image im = null;
public imageback(Image im){
thisim=im;
int width = ToolkitgetDefaultToolkit()getScreenSize()width;
int height = ToolkitgetDefaultToolkit()getScreenSize()height;
thissetSize(width,height);
thissetVisible(true);
}
public static void main(String args[]){

}
public void paintComponent(Graphics g){
//清屏
superpaintComponent(g);
gdrawImage(im, 0, 0, thisgetWidth(),thisgetHeight(),this);
}
}
import javaxswing;
import javaioFile;
import javaioIOException;
import javanet;
/
学生管理系统主界面
/
public class StuMain extends JFrame{
//背景
Image image=null;
public StuMain() {
try {
image = ImageIOread(new File("images/startjpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
//把你要的背景放到背景面板里
imageback im = new imageback(image);
//把有背景的的JPanel放到JFrame里面
thisadd(im);
//添加框架的关闭事件处理
thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
thispack();
//设置框架的大小
//设置标题
thissetTitle("学生管理系统");
thissetVisible(true);
}
public static void main(String args[]){
new StuMain();
}
}
如果那不懂随时米我 qq896182794

package 学生管理界面;
import javaawtBorderLayout;
import javaawtCheckbox;
import javaawtCheckboxGroup;
import javaawtContainer;
import javaawtFont;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaawteventItemEvent;
import javaawteventItemListener;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
import javaxswingJTextField;
//录入的信息包括学号、姓名、性别、出生日期、是否联合培养等
public class 学生信息图形界面 extends JFrame implements ActionListener {
public 学生信息图形界面() { //构造方法
//界面显示问题
super("学生信息图形界面");
setDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);
setSize(320, 300);
setVisible(true);
Container content = getContentPane();
JPanel jp1 = new JPanel(); //创建一个面板
JLabel label = new JLabel("欢迎使用学生信息管理系统"); //欢迎界面的欢迎语句
labelsetFont(new Font("楷体_GB2312", FontBOLD, 20)); //设置显示的字体
jp1add(label); //将标签添加到面板jp1中
JPanel jp2 = new JPanel(); //创建一个面板,用于摆放提示各种功能的标签

JLabel label1 = new JLabel("请输入学生的详细资料:"); //输入提示输入的语言:
label1setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体

JLabel label2 = new JLabel("学 生 学 号:"); //提示各种输入内容的标签
label2setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体t
JTextField field1=new JTextField(10); //10为学号长度,可自行设定

JLabel label3 = new JLabel("学 生 姓 名:"); //提示输入学生姓名的标签
label3setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
JTextField field2=new JTextField(10); //10为姓名长度,可自行设定

JLabel label4 = new JLabel("学 生 性 别: "); //提示输入学生性别的标签
label4setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体

CheckboxGroup group1 = new CheckboxGroup(); //创建一个复选框用于选择某一功能

Checkbox check11 = new Checkbox("男",true,group1); //添加选项到复选框中
check11setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
check11addItemListener(new CheckHandler1(1)); //给相应复选框添加事件监听器
Checkbox check12 = new Checkbox("女",false,group1); //添加选项到复选框中
check12setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
check12addItemListener(new CheckHandler1(2)); //给相应复选框添加事件监听器

JLabel label5 = new JLabel("出 生 日 期:"); //提示输入出生日期的标签
label5setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
JTextField field3=new JTextField("2000",3); //3为姓名长度,可自行设定
JLabel label51 = new JLabel("年");
label51setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
JTextField field4=new JTextField("01",2); //2为姓名长度,可自行设定
JLabel label52 = new JLabel("月");
label52setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
JTextField field5=new JTextField("01",2); //2为姓名长度,可自行设定
JLabel label53 = new JLabel("日");
label53setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体

JLabel label6 = new JLabel("联合培养:"); //提示选择联合培养与否的标签
label6setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
CheckboxGroup group2 = new CheckboxGroup(); //创建一个复选框用于选择某一功能

Checkbox check21 = new Checkbox("是",true,group2); //添加选项到复选框中
check21setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
check21addItemListener(new CheckHandler2(1)); //给相应复选框添加事件监听器
Checkbox check22 = new Checkbox("否",false,group2); //添加选项到复选框中
check22setFont(new Font("楷体_GB2312", FontBOLD, 18)); //设置显示的字体
check22addItemListener(new CheckHandler2(2)); //给相应复选框添加事件监听器
//添加组件到面板容器中
jp2add(label1);
jp2add(label2);
jp2add(field1);
jp2add(label3);
jp2add(field2);
jp2add(label4);
jp2add(check11); jp2add(check12);
jp2add(label5);
jp2add(field3);jp2add(label51); jp2add(field4);jp2add(label52); jp2add(field5);jp2add(label53);
jp2add(label6);
jp2add(check21); jp2add(check22);
contentadd(jp1, BorderLayoutNORTH); //分别添加面板到容器中
contentadd(jp2, BorderLayoutCENTER); //分别添加面板到容器中

}
public void actionPerformed(ActionEvent e) {
// 事件响应处理
}
class CheckHandler1 implements ItemListener //复选框键的事件响应类
{
private int sel;
CheckHandler1(int select)
{
sel = select;
}
public void itemStateChanged(ItemEvent e)
{
switch(sel)
{
case 1:method1();break; //调用选择的相应功能的方法
case 2:method2();break; //调用选择的相应功能的方法
}
}
private void method1() { //事件响应方法
}
private void method2() { // 事件响应方法
}
}
class CheckHandler2 implements ItemListener //复选框键的事件响应类
{
private int sel;
CheckHandler2(int select)
{
sel = select;
}
public void itemStateChanged(ItemEvent e)
{
switch(sel)
{
case 1:method1();break; //调用选择的相应功能的方法
case 2:method2();break; //调用选择的相应功能的方法
}
}
private void method1() { //事件响应方法
}
private void method2() { //事件响应方法
}
}
//测试
public static void main(String[] args) {
学生信息图形界面 界面 = new 学生信息图形界面();
界面setVisible(true);
}
}

写了个最简单的界面,其它要求自己可以添加和修改
package comframesmember;
import javaawtBorderLayout;
import javaawtGridLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaxswingJButton;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJOptionPane;
import javaxswingJPanel;
import javaxswingJTextArea;
import javaxswingJTextField;
public class Register extends JFrame{
public Register(){
JPanel baseInfo = new JPanel(new GridLayout(3,2,5,5));
JLabel nameLabel = new JLabel("姓名:",JLabelRIGHT);
JTextField name = new JTextField(20);
baseInfoadd(nameLabel);
baseInfoadd(name);

JLabel ageLabel = new JLabel("年龄:",JLabelRIGHT);
JTextField age = new JTextField(20);
baseInfoadd(ageLabel);
baseInfoadd(age);

JLabel sexLabel = new JLabel("年龄:",JLabelRIGHT);
JComboBox sex = new JComboBox(new String[]{"男","女"});
baseInfoadd(sexLabel);
baseInfoadd(sex);
thisadd(baseInfo,BorderLayoutNORTH);

JPanel resumePanel = new JPanel(new GridLayout(1,1,5,5));
JLabel resumeLabel = new JLabel("简历:",JLabelRIGHT);
JTextArea resume = new JTextArea(10,20);
resumePaneladd(resumeLabel);
resumePaneladd(resume);
thisadd(resumePanel,BorderLayoutCENTER);

JPanel buttonPanel = new JPanel(new GridLayout(1,1,5,5));
JButton sub = new JButton("提交");
subsetSize(100, 50);
subaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JOptionPaneshowMessageDialog(null,"添加成功");
}});
JButton clear = new JButton("取消");
clearaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Systemexit(0);
}});
clearsetSize(100, 50);
buttonPaneladd(sub);
buttonPaneladd(clear);
thisadd(buttonPanel,BorderLayoutSOUTH);
}
public static void main(String[] args) {
Register reg = new Register();
regsetLocation(200, 100);
regsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
regsetVisible(true);
regpack();
}
}

import javaxswing;import javaawt;import javaawtevent;
public class li53{
public static void main(String args[]){
ButtonDemo myButtonGUI=new ButtonDemo();
myButtonGUIsetVisible(true);
}
}
class ButtonDemo extends JFrame implements ActionListener{
public static final int Width=250;
public static final int Height=200;
ButtonDemo(){
setSize(Width,Height); setTitle("按钮事件样例");
Container conPane=getContentPane();
conPanesetBackground(Colorblue);
conPanesetLayout(new FlowLayout());
JButton redBut=new JButton("red");
redButaddActionListener(this);
conPaneadd(redBut);
JButton greenBut=new JButton("green");
greenButaddActionListener(this);
conPaneadd(greenBut);
}
public void actionPerformed(ActionEvent e){
Container conPane=getContentPane();
if(egetActionCommand()equals("red"))
conPanesetBackground(Colorred);
else if(egetActionCommand()equals("green"))
conPanesetBackground(Colorgreen);
}
}
我帮你改好了,在
else if(egetActionCommand()equals("green"));//这里多了个分号
conPanesetBackground(Colorgreen);
所以编程习惯要养成,在if后面无论几句话都要用{}将方法体括起来,你这样很容易错的。改起来也吃力。


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

原文地址: http://outofmemory.cn/yw/12604468.html

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

发表评论

登录后才能评论

评论列表(0条)

保存