「java桌面窗体」java开发桌面
今天给各位分享java桌面窗体的知识,其中也会对java开发桌面进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
怎么用java写一个窗体程序?
下面介绍如何用简单的几句话在eclipse环境下出现一个窗口。
首先写一个frame类,继承Frame,是继承widows 然后把,出现窗口的语句封装成一个函数
public void lunchFrame(){
this.setLocation(0,0);
this.setSize(20,20);
setVisible(True); //一定要写这句话
}
最后只需要在主函数里面调用就可以
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
如何使JAVA的控制台以窗体的形式显示在桌面上?
1、首先打开电脑,转到JAVA的控制台页面。
2、然后关闭页面,会自动弹出,是否以窗体形式显示在桌面。
3、点击下方显示,即可出现在桌面。
java图形界面子窗体怎么弄?
给你一段我自己用Swing写的MDI(多文档用户界面)的代码,仅供参考: package com.jb.cdjj.y2t027.flydream.hrms.swing;import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyVetoException;
import java.text.SimpleDateFormat;
import java.util.Calendar;import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JToolBar;
import javax.swing.Timer;
import javax.swing.border.BevelBorder;import com.jb.cdjj.y2t027.flydream.hrms.pojo.UsersPojo;
import com.jb.cdjj.y2t027.flydream.hrms.swing.component.JDesktopScrollPane;
import com.jb.cdjj.y2t027.flydream.hrms.swing.utils.CharacterCommon;/**
* p描述:FrmMain 主界面视窗UI类
* p作者:邓超
* p班级:Y2T027 FlyDream 小组
* p时间:2009-5-13
* p地点:宿舍
* p版本:1.0.0.1
*/
public class FrmMain extends JFrame { /**
* 序列化版本ID
*/
private static final long serialVersionUID = -6893438572255430328L; {
// 设置UI感观效果(使用三方jar包:looks-2.1.4.jar)
try {
javax.swing.UIManager.setLookAndFeel("com.jgoodies.looks.plastic.PlasticXPLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
} /**
* UI组件
*/
private JMenuItem mnuItemHelpTopic;
private JPanel pnlMain;
private JMenu mnuHelp;
private JMenuItem mnuItemDelete;
private JPanel pnlTlb;
private JSeparator septEdit;
private JMenuItem mnuItemPaste;
private JMenuItem mnuItemCopy;
private JMenuItem mnuItemCut;
private JMenu mnuEdit;
private JMenuItem mnuItemLock;
private JMenuItem mnuItemExit;
private JSeparator septSystemBottom;
private JMenuItem mnuItemAbout;
private JMenuItem mnuItemLogout;
private JSeparator septSystemTop;
private JMenuItem mnuItemPermissions;
private JMenuItem mnuItemParamConfig;
private JLabel lblLoginUser;
private JScrollPane pnlScrollContent;
private JMenuItem mnuCloseAll;
private JSeparator septWindow;
private JMenuItem mnuItemCloseCurrent;
private JMenuItem mnuItemSwitch;
private JMenu mnuWindow;
private JLabel lblTime;
private JLabel lblProgressMsg;
private JProgressBar progressOperation;
private JDesktopPane pnlDsk;
private JPanel pnlStatus;
private JButton btnHelp;
private JButton btnExit;
private JButton btnLogout;
private JButton btnLockScreen;
private JToolBar tlbMain;
private JMenu mnuSystem;
private JMenuBar mnuBarMain;
private JButton btnPermissions;
private JButton btnParamConfig;
private JLabel lblTlbSpliter2;
private JLabel lblTlbSpliter1;
private JMenuItem mnuModifyPwd;
private static FrmLogin frmLogin;
private JPanel pnlContent;
private static UsersPojo currentLoginUser; /**
* 获取当前登录用户
* @return 当前登录用户实体
*/
public static UsersPojo getCurrentLoginUser() {
return currentLoginUser;
}
/**
* 设置当前登录用户
* @param currentLoginUser 当前登录用户实体
*/
public static void setCurrentLoginUser(UsersPojo currentLoginUser) {
FrmMain.currentLoginUser = currentLoginUser;
} /**
* 参数化构造器
* @param loginWindow 登录UI实例
*/
public FrmMain(FrmLogin loginWindow) {
super();
frmLogin = loginWindow;
initGUI();
this.addComponentListener(new ComponentAdapter(){ /**
* 组件显示事件方法
*/
@Override
public void componentShown(ComponentEvent e) {
lblLoginUser.setText("【"
+ (currentLoginUser != null
? (currentLoginUser.getLoginAccount() + "/" + currentLoginUser.getUsersName())
: "未登录")
+ "】");
super.componentShown(e);
}
});
}
/**
* UI组件初始化方法
*/
private void initGUI() {
try {
{
BorderLayout thisLayout = new BorderLayout();
getContentPane().setLayout(thisLayout);
}
{
mnuBarMain = new JMenuBar();
setJMenuBar(mnuBarMain);
{
mnuSystem = new JMenu();
mnuBarMain.add(mnuSystem);
mnuSystem.setText("系统(S)");
mnuSystem.setMnemonic(java.awt.event.KeyEvent.VK_S);
mnuSystem.setName("mnuSystem");
mnuSystem.setDoubleBuffered(false);
{
mnuItemParamConfig = new JMenuItem();
mnuSystem.add(mnuItemParamConfig);
mnuItemParamConfig.setText("参数设置(P)...");
mnuItemParamConfig.setToolTipText("前台系统字典及参数设置");
mnuItemParamConfig.setMnemonic(java.awt.event.KeyEvent.VK_P);
mnuItemParamConfig.setName("mnuItemParamConfig");
mnuItemParamConfig.setIcon(new ImageIcon(getClass().getClassLoader().getResource("img/Param.png")));
mnuItemParamConfig.setDoubleBuffered(false);
mnuItemParamConfig.addActionListener(new ActionListener() {
/**
* 激活参数设置菜单项的事件方法
*/
public void actionPerformed(ActionEvent e) {
openOnlyOneInternalFrame(FrmInlParam.getInstance());
}
});
}
{
mnuItemPermissions = new JMenuItem();
mnuSystem.add(mnuItemPermissions);
mnuItemPermissions.setText("权限管理(E)...");
mnuItemPermissions.setToolTipText("系统用户及其授权管理");
mnuItemPermissions.setName("mnuItemPermissions");
mnuItemPermissions.setMnemonic(java.awt.event.KeyEvent.VK_E);
mnuItemPermissions.setIcon(new ImageIcon(getClass().getClassLoader().getResource("img/Permissions.png")));
mnuItemPermissions.setDoubleBuffered(false);
mnuItemPermissions.addActionListener(new ActionListener() {
/**
* 激活权限管理菜单项的事件方法
*/
public void actionPerformed(ActionEvent e) {
openOnlyOneInternalFrame(FrmInlPermissions.getInstance());
}
});
}
{
septSystemTop = new JSeparator();
mnuSystem.add(septSystemTop);
septSystemTop.setName("septSystemTop");
septSystemTop.setDoubleBuffered(false);
}
----------------------------------字数太多,只能分开发。
java的一个窗体建立
我已发送邮件到你的邮箱,我的邮箱是fengxk2004@163.com
Java源程序附后。
本程序的特点是:
(1) 文本框只能输入纯数字;
(2) 界面较美观;
(3) 代码可读性较好,有适当的注释;
(4) 窗体一出现就在桌面居中。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class GuessNumber {
private static final long serialVersionUID = 1L;
JFrame frame;
JTextField txtNum; //文本框
JButton btnStart; //按钮
JLabel lblPrompt;
JLabel lblMessage;
static int source = 0;
static Random rand = new Random();
public GuessNumber(){
frame = new JFrame("Guess Number");
JPanel pnl1, pnl2, pnl3, pnl4;
pnl1 = new JPanel();
pnl1.setLayout(new FlowLayout(FlowLayout.LEFT));
pnl2 = new JPanel();
pnl2.setLayout(new FlowLayout(FlowLayout.LEFT));
pnl3 = new JPanel();
pnl3.setLayout(new FlowLayout(FlowLayout.LEFT));
pnl4 = new JPanel();
pnl4.setLayout(new FlowLayout(FlowLayout.LEFT));
txtNum = new JTextField(10);
btnStart = new JButton("开始");
lblPrompt = new JLabel("htmlbodyI have a number between 1 and 1000 can you guess my number?br/Please enter your first guess./body/html");
lblMessage = new JLabel();
pnl1.add(lblPrompt);
pnl2.add(txtNum);
pnl3.add(lblMessage);
pnl4.add(btnStart);
frame.setLayout(new GridLayout(4, 1));
frame.add(pnl1);
frame.add(pnl2);
frame.add(pnl3);
frame.add(pnl4);
txtNum.addActionListener(this.new TextAction());
txtNum.addKeyListener(this.new KeyAction());
btnStart.addActionListener(this.new ButtonAction());
frame.setSize(400, 200);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
}
public static void main(String[] args) {
new GuessNumber();
while((source=rand.nextInt(1000))==0);
}
//按钮单击后的事件处理
class ButtonAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton)e.getSource();
if(btn == btnStart){
while((source=rand.nextInt(1000))==0);
txtNum.setEditable(true);
}
}
}
//文本框按回车后的事件处理
class TextAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JTextField txt = (JTextField)e.getSource();
if(txt != txtNum){
return;
}
int num = Integer.parseInt(txtNum.getText());
if(num == source){
lblMessage.setText("Correct!");
txtNum.setEditable(false);
txtNum.setBackground(frame.getBackground());
}
else if(num source){
lblMessage.setText("Too High");
txtNum.setBackground(Color.red);
}
else{
lblMessage.setText("Too Low");
txtNum.setBackground(Color.blue);
}
}
}
//限制文本框只能输入数字
class KeyAction implements KeyListener{
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
int k = e.getKeyChar();
String text = ((JTextField)e.getSource()).getText();
if(!((k47 k 58) || (k==8 || k==KeyEvent.VK_PERIOD))){ //限制只能输入数字
e.setKeyChar((char)KeyEvent.VK_CLEAR);
}
if(text.length() 4){ //限制数值的长度
e.setKeyChar((char)KeyEvent.VK_CLEAR);
}
}
}
}
java怎么给窗体或者面板设置背景图片?
1利用标签组件来设置\x0d\x0a标签本来是一种最简单的组件,为什么可以将它设置成为一个窗体的背景呢?首先还是要了解框架JFrame中的层次结构。JFrame中的层次分布及相对关系是:最底层是JRootPane,第二层是JlayerPane,最上层就是ContentPane,也正是我们常说的内容面板。所以一般我们拖放的控件就是在ContentPane层上。也就是说我们只需将背景图片放在JFrame的第二层是JlayerPane上,再把内容面板ContentPane设置为透明,则第二层JlayerPane上放置的图片即成为内容面板的背景了。具体代码如下:\x0d\x0aJPanelpnlMain=newJPanel();//创建面板pnlMain。\x0d\x0agetContentPane().add(pnlMain);//将pnlMain设置为主面板。\x0d\x0aIconi=newImageIcon("背景.jpg");/*用源图片“背景.jpg”构造一个ImageIcon对象i,需要注意如果图片的路径使用的是相对路径,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则图片的路径必须用绝对路径。*/\x0d\x0aJLabellblLogo=newJLabel(i);//用指定的图片构造标签对象lb\x0d\x0athis.getLayeredPane().add(lb,newInteger(Integer.MIN_VALUE));\x0d\x0a//把标签放在第二层JlayerPane上。\x0d\x0alb.setBounds(0,0,ii.getIconWidth(),i.getIconHeight());\x0d\x0a//设置标签的尺寸,即背景图象的大小。\x0d\x0agetConentPane().setOpaque(false);/*把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。*/\x0d\x0apnlMain.add(lb);//将标签添加到主面板pnlMain中。\x0d\x0a用标签组件JLabel来设置窗体背景,其扩展性上比较差,且在标签上不能放置其他组件,比如:在放置一个JButton,整个布局背景图就错乱。导致这种现象是因为Java加载组件是有顺序的,作为背景的JLabel的代码一定要放在全部组件代码的最后,这样JLabel的背景图片才不会被其他组件遮住,从而使整个布局背景错乱。所以采用这种方式来设置窗体背景有很大的局限性。因此最好是采用以下方式来设置窗体背景。\x0d\x0a2通过JPanel面板来设置窗体背景\x0d\x0aJPanel面板是Java中的容器之一。而Java中的容器是没有背景图片的属性的,它们只有背景颜色,如果需要在JPanel面板上设置窗体背景,就需要重写paintComponent(Graphicsg)方法,即把所要设置的背景图片画上作为JPanel面板的背景。具体实现如下:\x0d\x0a首先定义一个JPanel的子类BjPanel,由于JPanel的构造方法不能添加图像,因此在创建此子类的时候先用getImage载入一幅背景图片,在重写paintComponent(Graphicsg)方法时,利用drawImage方法将其逐渐绘制到屏幕上,并将该面板添加到框架中,最后将该面板设置为透明。其代码如下:\x0d\x0aimportjava.awt.*;\x0d\x0aimportjavax.swing.*;\x0d\x0apublicclassbkground\x0d\x0a{\x0d\x0apublicstaticvoidmain(Stringargs[])\x0d\x0a{\x0d\x0aBjFramef=newBjFrame();\x0d\x0af.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\x0d\x0af.setVisible(true);\x0d\x0a}\x0d\x0a}\x0d\x0aclassBjFrameextendsJFrame\x0d\x0a{\x0d\x0apublicBjFrame()\x0d\x0a{\x0d\x0asetSize(WTH,HHT);\x0d\x0aBjPanelpl=newBjPanel();\x0d\x0aContainercontentPane=getContentPane();\x0d\x0acontentPane.add(pl);\x0d\x0apl.setOpaque(true);\x0d\x0a}\x0d\x0apublicstaticfinalintWTH=300;\x0d\x0apublicstaticfinalintHHT=200;\x0d\x0a}\x0d\x0aclassBjPanelextendsJPanel\x0d\x0a{\x0d\x0aImageim;\x0d\x0apublicBjPanel()\x0d\x0a{\x0d\x0aim=Toolkit.getDefaultToolkit().getImage("背景.jpg");//需要注意的是如果用相对路径载入图片,则图片文件必须放在类文件所在文件夹或项目的根文件夹中,否则必须用绝对路径。\x0d\x0a}\x0d\x0apublicvoidpaintComponent(Graphicsg)\x0d\x0a{\x0d\x0asuper.paintComponent(g);\x0d\x0aintimWidth=image.getWidth(this);\x0d\x0aIntimHeight=image.getHeight(this);//定义图片的宽度、高度\x0d\x0aintFWidth=getWidth();\x0d\x0aintFHeight=getHeight();//定义窗口的宽度、高度\x0d\x0aintx=(FWidth-imWidth)/2;\x0d\x0ainty=(FHeight-imHeight)/2;//计算图片的坐标,使图片显示在窗口正中间\x0d\x0ag.drawImage(image,x,y,null);//绘制图片\x0d\x0a}\x0d\x0a}
java桌面窗体的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java开发桌面、java桌面窗体的信息别忘了在本站进行查找喔。