JAVA如何给程序设置一个窗口

JAVA如何给程序设置一个窗口,第1张

首先,绘制一个默认的窗体,创建好工程,包,类,命名类为Window.很简单,在类中添加一个私有属性JFrame,这么写:private JFrame f = new JFrame("欢迎来到本自助银行")Window的构造方法中,只写 f.setVisible(true)以及窗体的初始位置和初始大小:f.setLocation(300, 200)f.setSize(800, 500)

然后在同一个构造函数中跟进一行f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)此为设置关闭图标即退出程序紧接着,写f.setResizable(false)此为设置不可更改窗体大小。如图,的确没办法更改了。

最后,便是画龙点睛的一笔,给窗体添加一个图标,显得更专业了一些:f.setIconImage(Toolkit.getDefaultToolkit().createImage("E:\\a.jpg"))

这里有一点比较重要,重申一句。构造器中的设置比静态属性初始化设置更有直接影响力。而且,程序是执行向上覆盖的。也就是说,如果之后有过更改,那么更改之后就显示更改后的结果,比如,在这个构造函数中再写f.setTitle("好好活着")那么,请注意窗体的文字。如图:

java做窗口的话,需要用swing技术,之后创建JFrame 等组件,即可完成窗口创建工作。

package inter.frameimport java.awt.BorderLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListenerimport javax.swing.JFrame

import javax.swing.JMenu

import javax.swing.JMenuBar

import javax.swing.JMenuItem

import javax.swing.JOptionPanepublic class MenuTest { /**

* @param args

*/

JFrame frame //定义一个窗口架构

JMenuBar mb//定义窗口的菜单工具栏

JMenu m//定义菜单

JMenuItem mi1//定义菜单的内容

JMenuItem mi2//定义菜单的内容

public MenuTest() {

initFrame()

initAction()

}

public void initFrame() {

frame = new JFrame()

mb = new JMenuBar()

m = new JMenu("学生查询")

mi1 = new JMenuItem("确认")

mi2 = new JMenuItem("取消")m.add(mi1)

m.add(mi2)

mb.add(m)

frame.add(mb, BorderLayout.NORTH)

frame.setSize(300, 300)//设置窗口大小

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)//设置退出时关闭窗口

frame.setVisible(true)//设置窗口可见

} public void initAction() {

mi1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// 具体实现代码根据实际要求填写

System.out.println("click")

JOptionPane.showMessageDialog(null, "你点击了确定按钮")

}

})

mi2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// 具体实现代码根据实际要求填写

JOptionPane.showMessageDialog(null, "你点击了取消按钮")

}

})

} public static void main(String[] args) {

new MenuTest()//执行菜单创建

}}

这样:

import java.awt.*

import java.awt.event.*

import javax.swing.* 

import java.awt.Graphics 

public class MainClass extends JFrame {

  public JComboBox box

  int flag = 0

  jpNewPanel jpNewPanel 

  public static void main(String[] args) {

  MainClass frame = new MainClass()

  frame.setBounds(650,300,550,550)

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

      frame.setTitle("信号灯")

      frame.setVisible(true)

  } 

  public MainClass() {

      box = new JComboBox()

      box.addItem("请选择")

      box.addItem("红灯")

      box.addActionListener(new ActionListener() {

          public void actionPerformed(ActionEvent e) {

              flag = box.getSelectedIndex()

              jpNewPanel.repaint()

          }

      })

      box.addItem("黄灯")

      box.addActionListener(new ActionListener() {

          public void actionPerformed(ActionEvent e) {

              flag = box.getSelectedIndex()

              jpNewPanel.repaint()

          }

      })

      box.addItem("绿灯")

      box.addActionListener(new ActionListener() {

          public void actionPerformed(ActionEvent e) {

              flag = box.getSelectedIndex()

              jpNewPanel.repaint()

          }

      })

      add(box, BorderLayout.NORTH)

      jpNewPanel = new jpNewPanel()

      add(jpNewPanel, BorderLayout.CENTER)

  }

  class jpNewPanel extends JPanel {

      protected void paintComponent(Graphics g) {

          super.paintComponent(g)

          g.drawOval(150, 0, 120, 120)

          if (flag == 1) {

              g.setColor(Color.RED)

              g.fillOval(150, 0, 120, 120)

          } else if (flag == 2) {

              g.setColor(Color.YELLOW)

              g.fillOval(150, 0, 120, 120)

          } else if (flag == 3) {

              g.setColor(Color.GREEN)

              g.fillOval(150, 0, 120, 120)

          }

      }

  }

}

扩展资料:

注意事项

每个Road对象都有一个name成员变量来代表方向,有一个vehicles成员变量来代表方向上的车辆集合。

在Road对象的构造方法中启动一个线程每隔一个随机的时间向vehicles集合中增加一辆车(用一个“路线名_id”形式的字符串进行表示)。

在Road对象的构造方法中启动一个定时器,每隔一秒检查该方向上的灯是否为绿,是则打印车辆集合和将集合中的第一辆车移除掉。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存