十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用JAVA编写窗体程序一般可以用swing这个库,你用什么开发工具都没有关系。 我们可以实例化JFrame这个类来实现窗体。然后可以往窗体里加入一些容器和组件,还可以对这些组件增加侦听的方法,这样,一个JAVA的窗体程序的雏形就有了。这些都很简单的,你查查API就明白了。 给你一个hello world程序: import javax.swing.JFrame; import javax.swing.JLabel; public class test { public static void main(String args[]) { JFrame j =new JFrame(); j.setSize(100, 100); j.add(new JLabel("Hello world!")); j.setVisible(true); } }
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比大祥网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式大祥网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖大祥地区。费用合理售后完善,十余年实体公司更值得信赖。
生成无标题栏,就是把边框去掉,可以使用 this.setUndecorated(true); // 去掉窗口边框
但是去掉边框后就不可以移动了,需要重写一些方法,例如:
public void run() {
try {
final Mian_login frame = new Mian_login();
frame.setVisible(true);
this.setDragable(frame);
} catch (Exception e) {
e.printStackTrace();
}
}
// 为窗口加上监听器,使得窗口可以被拖动
private void setDragable(Mian_login frame) {
frame.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
isMoved = false;// 鼠标释放了以后,是不能再拖拽的了
frame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
public void mousePressed(java.awt.event.MouseEvent e) {
isMoved = true;
pre_point = new Point(e.getX(), e.getY());// 得到按下去的位置
frame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
});
//拖动时当前的坐标减去鼠标按下去时的坐标,就是界面所要移动的向量。
frame.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent e) {
if (isMoved) {// 判断是否可以拖拽
end_point = new Point(frame.getLocation().x + e.getX() - pre_point.x,
frame.getLocation().y + e.getY() - pre_point.y);
frame.setLocation(end_point);
}
}
});
}
});
这是参考网上的大神弄出来的
首先,我们看一下窗体都有哪些要素,以windows下的【记事本】为例:我们新建一个记事本,会看到标题,大小,位置,关闭方式;
所以我们用代码创建一个窗体,也需要这些要素,前提:在Java中创建窗体,我们需要继承【JFrame】类,导入JFrame包;
第二步,我们给窗体设置标题(PS:对窗体的一些设置,最好写在构造方法里,养成良好的习惯),设置标题使用setTitle()方法;
第三步,给窗体设置大小和位置,我们可以使用setBounds()【setBounds()传入4个参数,前两个是窗体的位置,后两个是窗体的 大小】,将大小和位置一起设置,也可以使用setLocation()设置窗体的位置(注意窗体的位置,是以电脑屏幕左上角为原点(0,0)的坐标系),使用setSize()设置窗体的大小;
第四步,设置窗体的关闭方式,使用setDefaultCloseOperation();
最后一步,也是特别重要的,我们虽然上面创建好窗体了,但是我们并没有设置让窗体【显示】,所以你现在运行程序,窗体是显示不出来的,我们还需要加一句setVisible(),传入的参数为true;
我们补全程序,加上main()方法,运行看一下吧!
我已发送邮件到你的邮箱,我的邮箱是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);
}
}
}
}