最近很多小伙伴都在问JAVA界面设计和java界面设计工具这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展01背包问题的java界面实现、2.北京界面设计公司哪家好,优秀设计就找蓝
最近很多小伙伴都在问JAVA界面设计和java界面设计工具这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展01背包问题的java界面实现、2.北京界面设计公司哪家好,优秀设计就找蓝蓝设计、app界面设计及设计规范、Intellij IDEA界面设置等相关知识,下面开始了哦!
本文目录一览:JAVA界面设计(java界面设计工具)
一、java的图形界面
1.swing javax.swing
jdk1.4时推出的图形界面,跨平台性好
二、常用的组件
1.容器组件
JFrame 窗体类 最顶级的容器(默认布局为边框布局,不能自己互相添加)
2.元素组件
JLabel 标签类
JTextField 文本输入框类(可以设置框内字符、输入框长度)
JPasswordField 密码输入框类(框内字符会被特定字符代替)
JCheckBox 复选框类
JButton 按钮类
容器和组件都是swing包下的类。javax.swing.JFrame
三、常用的布局
1.布局类只能用在容器中。设置布局时需用setLayout()
FlowLayout 流式布局(如同文本文档一样一行一行排列,排列满换行,默认方向为从左向右,可以设置对齐方向)
四、简单登录界面的实现
1.新建一个xxx类(Login),在类中定义主函数。
2.在类中定义一个初始化界面的方法(initUI)
3.在初始化界面的方法中,实例化一个顶级容器(JFrame)类的对象。
4.设置JFrame对象的属性值(标题,大小,显示位置,关闭退出程序,禁止调整大小,可见,该步完成对一个窗体的创建)
5.实例化元素组件对象,将对象添加到窗体上
6.在主函数中实例化Login类的对象,用对象名调用初始化界面的方法。
注:setDefaultCloseOperation()括号中可选数字,3是关闭时退出程序。0是不关闭。1是隐藏,2是关闭时程序继续工作。
setVisible(true)必须放在最后才能显示所有组件。true为可见。
setSize()大小为像素点的大小。默认起点为左上角。
五、代码
1.简单的登录界面
可以用流式布局或者边框布局。
Java代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
//定义一个登录界面
public
class
showFrameqq {
// 入口主函数
public
static
void
main(String[] args) {
// 实例化showFrameqq类的对象
showFrameqq showqq =
new
showFrameqq();
//调用qq界面的方法
showqq.initGUI();
}
//定义一个qq界面的方法
public
void
initGUI(){
//实例化一个JFrame类的对象
javax.swing.JFrame jf =
new
javax.swing.JFrame();
//设置窗体的标题属性
jf.setTitle(
"QQ登录界面"
);
//设置窗体的大小属性
jf.setSize(
300
,
200
);
//设置窗体的位置属性
jf.setLocation(
450
,
200
);
//设置窗体关闭时退出程序
jf.setDefaultCloseOperation(
3
);
//设置禁止调整窗体的大小
jf.setResizable(
false
);
//实例化一个布局类的对象
java.awt.FlowLayout fl =
new
java.awt.FlowLayout();
//设置窗体的布局方式为流式布局
jf.setLayout(fl);
//实例化一个JLabel标签类的对象
javax.swing.JLabel jlaName =
new
javax.swing.JLabel(
" "
);
//将jlaName对象添加到容器JFrame对象上
jf.add(jlaName);
//实例化一个JTextField对象
javax.swing.JTextField jteName =
new
javax.swing.JTextField(
"账号"
,
20
);
//将jteName对象添加到容器JFrame对象上
jf.add(jteName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName2 =
new
javax.swing.JLabel(
"注册账号"
);
//将jlaName2对象添加到容器JFrame对象上
jf.add(jlaName2);
//实例化一个JPasswordField对象
javax.swing.JPasswordField jpaName =
new
javax.swing.JPasswordField(
"请输入密码"
,
20
);
//将jpaName对象添加到容器JFrame对象上
jf.add(jpaName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName3 =
new
javax.swing.JLabel(
"找回密码"
);
//将jlaName3对象添加到容器JFrame对象上
jf.add(jlaName3);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName =
new
javax.swing.JCheckBox(
"记住密码"
);
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName2 =
new
javax.swing.JCheckBox(
"自动登录"
);
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName2);
//实例化一个JCheckBox对象
javax.swing.JButton jbuName =
new
javax.swing.JButton(
" 登 录 "
);
//将jButton对象添加到容器JFrame对象上
jf.add(jbuName);
jf.setVisible(
true
);
}
}
package
cn.wz.study0718;
//定义一个登录界面
public
class
showFrameqq {
// 入口主函数
public
static
void
main(String[] args) {
// 实例化showFrameqq类的对象
showFrameqq showqq =
new
showFrameqq();
//调用qq界面的方法
showqq.initGUI();
}
//定义一个qq界面的方法
public
void
initGUI(){
//实例化一个JFrame类的对象
javax.swing.JFrame jf =
new
javax.swing.JFrame();
//设置窗体的标题属性
jf.setTitle(
"QQ登录界面"
);
//设置窗体的大小属性
jf.setSize(
300
,
200
);
//设置窗体的位置属性
jf.setLocation(
450
,
200
);
//设置窗体关闭时退出程序
jf.setDefaultCloseOperation(
3
);
//设置禁止调整窗体的大小
jf.setResizable(
false
);
//实例化一个布局类的对象
java.awt.FlowLayout fl =
new
java.awt.FlowLayout();
//设置窗体的布局方式为流式布局
jf.setLayout(fl);
//实例化一个JLabel标签类的对象
javax.swing.JLabel jlaName =
new
javax.swing.JLabel(
" "
);
//将jlaName对象添加到容器JFrame对象上
jf.add(jlaName);
//实例化一个JTextField对象
javax.swing.JTextField jteName =
new
javax.swing.JTextField(
"账号"
,
20
);
//将jteName对象添加到容器JFrame对象上
jf.add(jteName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName2 =
new
javax.swing.JLabel(
"注册账号"
);
//将jlaName2对象添加到容器JFrame对象上
jf.add(jlaName2);
//实例化一个JPasswordField对象
javax.swing.JPasswordField jpaName =
new
javax.swing.JPasswordField(
"请输入密码"
,
20
);
//将jpaName对象添加到容器JFrame对象上
jf.add(jpaName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName3 =
new
javax.swing.JLabel(
"找回密码"
);
//将jlaName3对象添加到容器JFrame对象上
jf.add(jlaName3);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName =
new
javax.swing.JCheckBox(
"记住密码"
);
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName2 =
new
javax.swing.JCheckBox(
"自动登录"
);
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName2);
//实例化一个JCheckBox对象
javax.swing.JButton jbuName =
new
javax.swing.JButton(
" 登 录 "
);
//将jButton对象添加到容器JFrame对象上
jf.add(jbuName);
jf.setVisible(
true
);
}
}
|
01背包问题的java界面实现
01背包问题的java界面实现下载地址:http://download.csdn.net/source/2371274
public class BackProblem {
public static void main(String[] args) {
new BackProblemJFrame("背包问题");
}
}
import java.util.StringTokenizer;
public class BackProblemArithmetic {
String backVolume,goodsVolume,goodsWorth;
String bestVolume,group =""; int groupGoodsVolume =0,groupGoodsWorth=0;
BackProblemArithmetic(){
}
//数据有效性的判断
public boolean isNumber(String backVolume, String goodsVolume,String goodsWorth){
boolean effective;
this.backVolume = backVolume;
this.goodsVolume = goodsVolume;
this.goodsWorth = goodsWorth;
//判断背包的容量输入是否有误
try{
Integer.valueOf(this.backVolume);
}
catch(Exception ex){
return effective = false;
}
//物品的价值和物品的质量有效性的判断
String str = this.goodsVolume+","+this.goodsWorth;
if (!this.backVolume.equals("") && !this.goodsVolume.equals("")
&& !this.goodsWorth.equals("")) {
StringTokenizer tokenizer = new StringTokenizer(str, ",, ");
effective = true;
while (tokenizer.hasMoreTokens()) {
try {
Integer.valueOf(tokenizer.nextToken());
} catch (Exception e) {
effective = false;
}
}
//判断物品的价值和物品的质量个数是否一致
tokenizer = new StringTokenizer(this.goodsVolume, ",, ");
int a = tokenizer.countTokens();
tokenizer = new StringTokenizer(this.goodsWorth, ",, ");
int b = tokenizer.countTokens();
if(a!= b) effective = false;
}
else effective = false;
return effective;
}
//背包算法的调用
public void backAnswer(){
int gv[],gw[];//定义数组用于存取goodVolume 和 goodsWorth 的值
int i = 1,c = 0,num = 0;//c背包的容量 , num 背包中物品的个数
//解析物品质量并保存在gv[]数据中
StringTokenizer tokenizer = new StringTokenizer(goodsVolume, ",, ");
gv = new int[tokenizer.countTokens()+1];//动态的决定数组的长度
while (tokenizer.hasMoreTokens()) {
String d = tokenizer.nextToken();
gv[i] = Integer.valueOf(d);//将字符串转换为整型
i++;
}
//解析物品的价值并保存在gw[]数组中
i = 1;
tokenizer = new StringTokenizer(goodsWorth, ",, ");
num = tokenizer.countTokens();
gw = new int[tokenizer.countTokens()+1];
while (tokenizer.hasMoreTokens()) {
String d = tokenizer.nextToken();
gw[i] = Integer.valueOf(d);//将字符串转换为整型
i++;
}
c = Integer.valueOf(backVolume);//得到背包的容量
//为输出测试可以去掉
System.out.println("C ="+ c +"; num ="+ num);
for( i = 1 ;i<gw.length;i++)
System.out.print("gw"+i+"="+gw[i]+" " );
for( i = 1 ;i<gv.length;i++)
System.out.print("gv"+i+"="+ gv[i]+" " );
System.out.println();
back(c,num,gv,gw);//调用背包算法
}
/*背包算法
* 问题描述:
* 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。
* 问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?
* 问题解决:
* m[i][j] = max(m(i+1,j),m(i+1,j-Wi)+vi); j>=wi
* m[i][j] = m(i+1,j) ;0<=j<=wi;
*/
public void back(int c,int num,int[] gv,int[] gw){//c背包的容量 , num 背包中物品的个数 ,gv 物品的质量 ,gw物品的价值
int m[][] = new int[num+1][c+1];//定义一个二维数组存放最优值
int i = 0,j = 0,jmax = 0;
int x[] = new int[num+1];//用于存放物品是否放入的标志 1 放入 , 0 没有放入
jmax = Math.min(gv[num]-1, c);
for( i = 0 ;i <= c ; i++ )//初始化最后一个数据
{
if( i <= jmax ) {
m[num][i] = 0;
}
else{
m[num][i] =gw[num];
}
}
for(i = num -1 ; i > 0 ; i--){
jmax = Math.min(gv[i]-1,c );//当前i物品不能装入的背包容量
for(j = 0; j <= c; j++ ){
if(j <=jmax ){
m[i][j] = m[i+1][j];
}
else {
m[i][j] = Math.max(m[i+1][j], m[i+1][j-gv[i]]+gw[i]);
}
}
}
bestVolume = String.valueOf(m[1][c]);
//输出测试
for(i = 0 ; i <= num ;i++ ){
for(j = 0;j<=c;j++)
System.out.print(m[i][j]+" ");
System.out.println();
}
System.out.println();
//物品的组合方式
for(i = 1 ; i < num; i++ ){
if(m[i][c] == m[i+1][c] )x[i] = 0;
else {
x[i] =1;
c = c - gv[i];
}
}
if(m[num][c]>0) x[num]=1;
else x[num]=0;
//结果的赋值
for(i = 1; i <= num ;i++){
System.out.print("x["+i+"]="+x[i]+" ");
if(i!=num)
group+=x[i] + ", ";
if(i == num)group+=x[i];
if(x[i]==1){
groupGoodsVolume += gv[i];
groupGoodsWorth += gw[i];
}
}
}
public String getBestVolume() {
return bestVolume;
}
public String getGroup() {
return group;
}
public String getGroupGoodsVolume() {
return String.valueOf(groupGoodsVolume) ;
}
public String getGroupGoodsWorth() {
return String.valueOf(groupGoodsWorth);
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class BackProblemJFrame extends JFrame implements ActionListener {
private JLabel backVolumeJL,goodsVolumeJL,goodsWorthJL,bestVolumeJL,groupJL,
groupGoodsVolumeJL,groupGoodsWorthJL;
private JTextField backVolumeJTF,goodsVolumeJTF,goodsWorthJTF,bestVolumeJTF,groupJTF,
groupGoodsVolumeJTF,groupGoodsWorthJTF;
private JPanel jp;
private JButton ok,reset;
BackProblemJFrame (String s){
super(s);
backProblemJFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==backVolumeJTF){
goodsVolumeJTF.requestFocusInWindow();
}
else if(e.getSource()==goodsVolumeJTF){
goodsWorthJTF.requestFocusInWindow();
}
else if(e.getSource() == reset ){//重置
backVolumeJTF.setText("");
goodsVolumeJTF.setText("");
goodsWorthJTF.setText("");
bestVolumeJTF.setText("");
groupJTF.setText("");
groupGoodsVolumeJTF.setText("");
groupGoodsWorthJTF.setText("");
}
else if(e.getSource() == goodsWorthJTF||e.getSource() == ok){//确定
BackProblemArithmetic bpa = new BackProblemArithmetic();
String bv = backVolumeJTF.getText() ,gv = goodsVolumeJTF.getText(),gw = goodsWorthJTF.getText();
if(bpa.isNumber(bv,gv,gw)){//如果数字有效
bpa.backAnswer();
bestVolumeJTF.setText(bpa.getBestVolume());
groupJTF.setText(bpa.getGroup());
groupGoodsVolumeJTF.setText(bpa.getGroupGoodsVolume());
groupGoodsWorthJTF.setText(bpa.getGroupGoodsWorth());
}
else {
JOptionPane.showMessageDialog(this,"输入的数据必须是数字且" +
"物品的容量/n物品的价值不能为空!", "警告",
JOptionPane.WARNING_MESSAGE);
}
}
}
private void backProblemJFrame() {
// TODO 主界面方法
this.setLayout(null);//设置为空布局 默认的是边界布局
backVolumeJL = new JLabel("请输入背包的容量:");
backVolumeJL.setBounds(30,5,125,25);
this.add(backVolumeJL);
backVolumeJTF = new JTextField(10);
backVolumeJTF.setBounds(160,5,80,25);
backVolumeJTF.addActionListener(this);
this.add(backVolumeJTF);
goodsVolumeJL = new JLabel("请输入所有物品的质量(个数不限,以逗号隔开)");
goodsVolumeJL.setBounds(5,35,300,25);
this.add(goodsVolumeJL);
goodsVolumeJTF = new JTextField(40);
goodsVolumeJTF.setBounds(10,65,270,25);
goodsVolumeJTF.addActionListener(this);
this.add(goodsVolumeJTF);
goodsWorthJL = new JLabel("请输入物品的价值(以逗号隔开,默认为零)");
goodsWorthJL.setBounds(10,95,300,25);
this.add(goodsWorthJL);
goodsWorthJTF = new JTextField(40);
goodsWorthJTF.setBounds(10,125,270,25);
goodsWorthJTF.addActionListener(this);
this.add(goodsWorthJTF);
ok = new JButton("确 定");
ok.setBounds(10,155,120,25);
ok.addActionListener(this);
this.add(ok);
reset = new JButton("重 置");
reset.setBounds(160,155,120,25);
reset.addActionListener(this);
this.add(reset);
jp = new JPanel();
jp.setBorder(BorderFactory.createTitledBorder("结果"));
jp.setBounds(10,185,270,150);
jp.setLayout(null);
this.add(jp);
bestVolumeJL = new JLabel("最优值:");
bestVolumeJL.setBounds(10,20,70,25);
jp.add(bestVolumeJL);
bestVolumeJTF = new JTextField();
bestVolumeJTF.setBounds(80, 20, 180, 25);
bestVolumeJTF.setEditable(false);
jp.add(bestVolumeJTF);
groupJL = new JLabel("组合方式:");
groupJL.setBounds(10,50,70,25);
jp.add(groupJL);
groupJTF = new JTextField();
groupJTF.setBounds(80,50,180,25);
groupJTF.setEditable(false);
jp.add(groupJTF);
groupGoodsVolumeJL = new JLabel("物品质量:");
groupGoodsVolumeJL.setBounds(10,80,70,25);
jp.add(groupGoodsVolumeJL);
groupGoodsVolumeJTF = new JTextField();
groupGoodsVolumeJTF.setBounds(80,80,180,25);
groupGoodsVolumeJTF.setEditable(false);
jp.add(groupGoodsVolumeJTF);
groupGoodsWorthJL = new JLabel("物品价值:");
groupGoodsWorthJL.setBounds(10,110,70,25);
jp.add(groupGoodsWorthJL);
groupGoodsWorthJTF = new JTextField();
groupGoodsWorthJTF.setBounds(80,110,180,25);
groupGoodsWorthJTF.setEditable(false);
jp.add(groupGoodsWorthJTF);
//界面的设置
Toolkit tk = getToolkit();
Dimension dim = tk.getScreenSize();
this.setResizable(false);
this.setBounds(dim.width/2-150, dim.height/2-200,300,380);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
2.北京界面设计公司哪家好,优秀设计就找蓝蓝设计
蓝蓝设计(北京兰亭妙微科技有限公司)是一家专注而深入的UI设计公司,公司对UI设计的追求一向很高,致力于为卓越的国内外企业提供卓越的交互ui设计、软件界面设计、网站设计,用户研究、交互设计等服务。
蓝蓝设计秉承设计优秀,不断超越的理念,诚信敬业、专业耐心的工作作风,一直坚持注重用户心理体验及“设计与营销”等领域的理论与实践相结合。10余年专注努力,300+案例磨练。我们在界面设计,用户体验与交互设计,各种类型软件界面设计,国际化标准和流行趋势,进行过不断的学习和实践。蓝蓝设计提供的是可以信赖的ui设计服务,我们内部有一套管理要求,比如去客户现场每周一次的检视和沟通、内部提案会议、每天下班前的整理反馈成果发邮件、随时沟通的qq、电话,阶段性的汇报和进度记录整理。多劳多得的奖励机制,客户满意度评价奖励机制,鼓励大家用心、平和、耐心、勤奋、创新的做事.
北京蓝蓝设计团队来自清华美院,工作多年,行业经验丰富,专业性很强。我们是热爱设计,设计不仅是我们的专业,我们的职业,还是我们的爱好。每一个蓝蓝设计的设计师都希望自己的设计越来越好,以高标准,敬业用心的态度、专业的技艺得到客户的认可。为此,我们不惜代价,愿意额外的付出时间、精力,去学习、去尝试、去研究、去探索。工作卖力,玩的开心。做好卓越的界面设计,成为这个领域的资深专家,帮助客户取得成功,是我们的目标。
在界面设计中,我们先后服务过亿阳信通、IBM、中国国家应急广播、中国移动、中国联通、中国航天科工、广大银行等等大型公司。我们的前端工程师有丰富经验,div+css优秀,js/jquery精通,可兼容火狐/IE/谷歌等,符合w3c标准,程度开发稳定,代码简洁清晰。
北京蓝蓝设计为您提供卓越的界面设计,软件ui设计,gis软件ui设计、OA软件ui设计、监控类软件ui设计、后台管理软件ui设计、大数据软件ui设计、气象软件ui设计、石油行业软件ui设计、列车监控软件ui设计,您可以直接联系优秀的软件ui设计提供者北京蓝蓝设计,北京界面设计公司哪家好?北京蓝蓝设计是您的放心选择。
欢迎访问,开始愉快的合作!
网站:www.lanlanwork.com
昌平区天通苑中苑61号楼4单元1502室
全国统一客服热线:400-608-6026
公司邮箱:weibaobei@163.com
app界面设计及设计规范
Intellij IDEA界面设置
- 进入配置页面
Configuration—>settings
2.代码提示
Editor→CodeComplete
我们今天的关于JAVA界面设计和java界面设计工具的分享已经告一段落,感谢您的关注,如果您想了解更多关于01背包问题的java界面实现、2.北京界面设计公司哪家好,优秀设计就找蓝蓝设计、app界面设计及设计规范、Intellij IDEA界面设置的相关信息,请在本站查询。
本文标签: