怎么把swing界面写的漂亮

怎么把swing界面写的漂亮,第1张

1. 求高手用swing开发界面的心得(大家要写界面的时候,有什么思路可

漂亮有两个我个人观点,第一花里胡哨,颜色艳丽,但是这个很容易疲劳,微软作为软解也的巨头,你看看他的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 ,就想当的漂亮


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存