漂亮有两个我个人观点,第一花里胡哨,颜色艳丽,但是这个很容易疲劳,微软作为软解也的巨头,你看看他的IE,Offiece都不是那种华丽呼哨的界面。如果你想swing也要花里胡哨,你要熟悉java2D,和UI,这样你会比谁都花里胡哨。当然最便捷的方式是找开源UI,你去搜一把就很多了。但是这是很累,这种新鲜感很容易就过去的,就像艳丽的舞蹈,花枝招展,看过几次你就不想看了。
第二点,UI的 *** 作性上,这一点需要创造性,结合swing灵活性才能实现,比如JboBox的下拉菜单,默认他的长度和JboBox宽度一样的,你可以改成随着内容变化的宽度,使得他不会再这么呆板,默认的下拉只是一个JLIst,你可以改成一个树状结构,实现更复杂的选择功能,或者你可以在哪里加菜单项,更方便用户,又或者是这个下拉同时具备一个树状的选择和几个菜单项,这是属于另外一种漂亮,像是经典舞蹈,舞台很平淡,平凡的舞蹈衣服,但是音乐响起就会让人沉醉,而且是看多少次都绝对过瘾。还有JTable,你可以用各种显示和编辑方式来方便用户,使得不再是枯燥乏味的text编辑,或者是一个ReadioButton的编辑方式,你可以在表格里放一个前面所说的JboBox,那么用户用到这样的一个JTable绝对是一种惊喜,因为他几乎在别再UI里看不到这种这么方便 *** 作的界面。这种界面表面上看起来可能很普通,就是个平常的应用程序,但是当用户鼠标点下去的时候就会发觉与众不同。这更像是一种成熟稳重的男人,看上去普普通通,说话也不是那么花言巧语,但是在生活中慢慢有不同的味道。
第一种界面可能短时间容易吸引人,第二种界面需要用户去体验才会知道,不同的人不一样,第一种对应的浮躁,喜欢表面上标新立异。第二种给那些真正需要软件的人,他们才会体会到隐含在平淡下的美。
2. java的swing怎么能变得漂亮些呢
Java的跨平台对于图形用户界面来说是一个障碍,因此不管是awt还是swing从sun手中诞生就不太能赶得上windows,这些年有了不少改进,但本质上还是没法追赶和超越,甚至web上都有flash, silverlight, html5这些都比swing做得漂亮,因此学java的大多去web上折腾了,当然你可以去搜索一些swing的主题下载,但本质上一些设计使得它没法突破。
eclipse最初是ibm领导的,它使用的是另一个图形库swt,你可以搜索一些这方面资料,可以看出它并非是跨平台的,而是在主要平台(win, linux)上附加了一些本地库,完全没用swing,因此不是换主题能改变得了的。
如果你实在想用Java作界面,我觉得你不如去了解一些最新的JavaFX,这个东西很新,虽前途未卜,但oracle正强力支持,值得了解一下。
3. Java中Swing的窗体怎么弄才好看
String windows=".sun.java.swing.plaf.windows.WindowsLookAndFeel"
UIManager.setLookAndFeel(windows)
UIManager.setLookAndFeel(".sun.java.swing.plaf.nimbus.NimbusLookAndFeel")Nimbus风格,新出来的外观,jdk6 update10版本以后的才会出现
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());当前系统风格
UIManager.setLookAndFeel(".sun.java.swing.plaf.motif.MotifLookAndFeel")Motif风格,外观接近windows经典,但宽宽大大,而且不是黑灰主色,而是蓝黑
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());跨平台的Java界面风格,不太明白这种说法
UIManager.setLookAndFeel(".sun.java.swing.plaf.windows.WindowsLookAndFeel")windows风格
UIManager.setLookAndFeel("javax.swing.plaf.windows.WindowsLookAndFeel")windows风格
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel")java风格
UIManager.setLookAndFeel(".apple.mrj.swing.MacLookAndFeel")
4. 如何用java制作精美的界面
确实Java做界面不怎么样
但是java也有界面做得很好的。比如Eclipse
谁能否认 Eclipse的界面 也还算不错呢 。
如果要把界面做得非常精美..那光靠awt,swing这些成品的框架是不行的
你必须用接口层的类来进行编程。
比如说你用JButton这个类..它属于实现层的类..很多都是默认的
如果你要让你的按钮摆出来 各方面都要达到你自己的效果
那你就得自己去实现AbstractButton类。根据自己需要进行设置
5. 如何用java制作精美的界面
eclipse用的是他自己开发的SWT。
Swing在jdk1.6.0_10里增加了一种外观nimbus,比默认的要漂亮多了。或者用系统外观也比默认的要强。
在程序的一开始执行:
Nimbus
UIManager.setLookAndFeel(".sun.java.swing.plaf.nimbus.NimbusLookAndFeel")
系统(如Windows) UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
&#8205
import java.awt.Color//界面不是很高大上档次,但是能满足你的基本需求,希望对你有用import java.awt.Font
import java.awt.GridLayout
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JOptionPane
import javax.swing.border.Border
import javax.swing.border.LineBorder
public class 抽奖游戏 extends JFrame {
static 抽奖游戏 frame
public 抽奖游戏() {
setLayout(new GridLayout(3, 3, 3, 3))
Border border = new LineBorder(Color.BLUE, 4)
JButton l1 = new JButton()
JButton l2 = new JButton()
JButton l3 = new JButton()
JButton l4 = new JButton()
JButton l5 = new JButton()
JButton l6 = new JButton()
JButton l7 = new JButton("祝你好运")
JButton l8 = new JButton("中奖规则")
JButton l9 = new JButton("再次抽奖")
l1.setBorder(border)
l2.setBorder(border)
l3.setBorder(border)
l4.setBorder(border)
l5.setBorder(border)
l6.setBorder(border)
l7.setBorder(border)
l8.setBorder(border)
l9.setBorder(border)
String[] num2 = { "1", "2", "3", "4", "5", "6" }
l8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "游戏规则:\n" + "特等奖:\n"
+ "第一行或者第二行出现的数字全部相同\n"
+ "第一第二行出现升序的1,2,3,4,5,6或者降序的6,5,4,3,2,1\n" + "一等奖\n"
+ "1:第一行或第二行的数字降序排列或者升序排列\n"
+ "2:第一行或者第二行相邻的按钮出现一样的数字\n")
}
})
l9.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
l1.setText("*")
l2.setText("*")
l3.setText("*")
l4.setText("*")
l5.setText("*")
l6.setText("*")
l7.setBackground(Color.lightGray)
l7.setText("离中奖不远了!")
}
})
l6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (int) (Math.random() * 10) % 6
l6.setText(num2[j6])
if (j1 == j2 && j2 == j3 || j4 == j5 && j5 == j6 || j1 == 1
&& j2 == 2 && j3 == 3 && j4 == 4 && j5 == 5 && j6 == 6
|| j1 == 6 && j2 == 5 && j3 == 4 && j4 == 3 && j5 == 2
&& j6 == 1) {
l7.setBackground(Color.red)
l7.setText("特等奖")
} else if (j1 > j2 && j2 > j3 || j3 > j2 && j2 > j1 || j4 > j5
&& j5 > j6 || j6 > j5 && j5 > j4 || j1 == j2
&& j5 == j4 || j1 == j2 && j5 == j6 || j3 == j2
&& j4 == j5 || j5 == j6 && j2 == j3) {
l7.setBackground(Color.YELLOW)
l7.setText("一等奖")
} else {
l7.setBackground(Color.lightGray)
l7.setText("未中奖,加油!")
}
}
})
l5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (int) (Math.random() * 10) % 6
l6.setText(num2[j6])
if (j1 == j2 && j2 == j3 || j4 == j5 && j5 == j6 || j1 == 1
&& j2 == 2 && j3 == 3 && j4 == 4 && j5 == 5 && j6 == 6
|| j1 == 6 && j2 == 5 && j3 == 4 && j4 == 3 && j5 == 2
&& j6 == 1) {
l7.setBackground(Color.red)
l7.setText("特等奖")
} else if (j1 > j2 && j2 > j3 || j3 > j2 && j2 > j1 || j4 > j5
&& j5 > j6 || j6 > j5 && j5 > j4 || j1 == j2
&& j5 == j4 || j1 == j2 && j5 == j6 || j3 == j2
&& j4 == j5 || j5 == j6 && j2 == j3) {
l7.setBackground(Color.YELLOW)
l7.setText("一等奖")
} else {
l7.setBackground(Color.lightGray)
l7.setText("未中奖,加油!")
}
}
})
l4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (int) (Math.random() * 10) % 6
l6.setText(num2[j6])
if (j1 == j2 && j2 == j3 || j4 == j5 && j5 == j6 || j1 == 1
&& j2 == 2 && j3 == 3 && j4 == 4 && j5 == 5 && j6 == 6
|| j1 == 6 && j2 == 5 && j3 == 4 && j4 == 3 && j5 == 2
&& j6 == 1) {
l7.setBackground(Color.red)
l7.setText("特等奖")
} else if (j1 > j2 && j2 > j3 || j3 > j2 && j2 > j1 || j4 > j5
&& j5 > j6 || j6 > j5 && j5 > j4 || j1 == j2
&& j5 == j4 || j1 == j2 && j5 == j6 || j3 == j2
&& j4 == j5 || j5 == j6 && j2 == j3) {
l7.setBackground(Color.YELLOW)
l7.setText("一等奖")
} else {
l7.setBackground(Color.lightGray)
l7.setText("未中奖,加油!")
}
}
})
l3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (int) (Math.random() * 10) % 6
l6.setText(num2[j6])
if (j1 == j2 && j2 == j3 || j4 == j5 && j5 == j6 || j1 == 1
&& j2 == 2 && j3 == 3 && j4 == 4 && j5 == 5 && j6 == 6
|| j1 == 6 && j2 == 5 && j3 == 4 && j4 == 3 && j5 == 2
&& j6 == 1) {
l7.setBackground(Color.red)
l7.setText("特等奖")
} else if (j1 > j2 && j2 > j3 || j3 > j2 && j2 > j1 || j4 > j5
&& j5 > j6 || j6 > j5 && j5 > j4 || j1 == j2
&& j5 == j4 || j1 == j2 && j5 == j6 || j3 == j2
&& j4 == j5 || j5 == j6 && j2 == j3) {
l7.setBackground(Color.YELLOW)
l7.setText("一等奖")
} else {
l7.setBackground(Color.lightGray)
l7.setText("未中奖,加油!")
}
}
})
l2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (int) (Math.random() * 10) % 6
l6.setText(num2[j6])
if (j1 == j2 && j2 == j3 || j4 == j5 && j5 == j6 || j1 == 1
&& j2 == 2 && j3 == 3 && j4 == 4 && j5 == 5 && j6 == 6
|| j1 == 6 && j2 == 5 && j3 == 4 && j4 == 3 && j5 == 2
&& j6 == 1) {
l7.setBackground(Color.red)
l7.setText("特等奖")
} else if (j1 > j2 && j2 > j3 || j3 > j2 && j2 > j1 || j4 > j5
&& j5 > j6 || j6 > j5 && j5 > j4 || j1 == j2
&& j5 == j4 || j1 == j2 && j5 == j6 || j3 == j2
&& j4 == j5 || j5 == j6 && j2 == j3) {
l7.setBackground(Color.YELLOW)
l7.setText("一等奖")
} else {
l7.setBackground(Color.lightGray)
l7.setText("未中奖,加油!")
}
}
})
l1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (int) (Math.random() * 10) % 6
l6.setText(num2[j6])
if (j1 == j2 && j2 == j3 || j4 == j5 && j5 == j6 || j1 == 1
&& j2 == 2 && j3 == 3 && j4 == 4 && j5 == 5 && j6 == 6
|| j1 == 6 && j2 == 5 && j3 == 4 && j4 == 3 && j5 == 2
&& j6 == 1) {
l7.setBackground(Color.red)
l7.setText("特等奖")
} else if (j1 > j2 && j2 > j3 || j3 > j2 && j2 > j1 || j4 > j5
&& j5 > j6 || j6 > j5 && j5 > j4 || j1 == j2
&& j5 == j4 || j1 == j2 && j5 == j6 || j3 == j2
&& j4 == j5 || j5 == j6 && j2 == j3) {
l7.setBackground(Color.YELLOW)
l7.setText("一等奖")
} else {
l7.setBackground(Color.lightGray)
l7.setText("未中奖,加油!")
}
}
})
Font font = new Font("", Font.BOLD, 20)
l1.setFont(font)
l2.setFont(font)
l3.setFont(font)
l4.setFont(font)
l5.setFont(font)
l6.setFont(font)
l7.setFont(font)
l8.setFont(font)
l9.setFont(font)
add(l1)
add(l2)
add(l3)
add(l4)
add(l5)
add(l6)
add(l7)
add(l8)
add(l9)
}
public static void main(String[] args) {
// TODO Auto-generated method stub
frame = new 抽奖游戏()
frame.setTitle("抽奖大战")
frame.setSize(500, 500)
frame.setLocationRelativeTo(null)
frame.setVisible(true)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
}
使用Swing照样可以开发出漂亮的界面.
主要的解决方案如下:
1: 合理的布局 , 搭建好界面的框架. 熟悉常用的布局, 并且布局还可以嵌套布局. 可以实现复杂而又美观的界面.
2: 适当的图片, 按钮, 背景等 都可以使用图片, 当然了为了节省系统资源, 可以使用稍微压缩得比较小的图片.
3: 搭配html , swing支持html简单的标签, 所以美化JButton ,JLabel等组件时, 可以使用一些Html标签. 来美化~~
4: 颜色调和. 界面要美观, 也可以适当的添加颜色, 但是要注意搭配和协调
5: 重写部分组件, swing自带的组件外观, 的确不太让人恭维, 但是我们可以自己根据需求进行重写.
6: 添加动态效果, 我们写javaScript经常是用来做特效的 , 我们可以借鉴一些JS特效的思路, 使用线程, 来给swing组件 等,添加动态的效果 , 比如抖动, 移动 , 滑出 等 特效~
7: 更换皮肤和外观 , 或者使用第三方的皮肤 ,比大神制作的皮肤BeautyEye ,就想当的漂亮
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)