⑴ java中用window类实现的一个窗口,如何使它可被移动啊!
Window不同于Frame,如果想让它可以移动的话,你需要自己处理MouseMovation事件和MouseMove事件。
1、MouseDown 时记下当前的鼠标的位置
2、MouseMove 时调整窗口的位置
3、MouseUp 时终止
⑵ JAVAswing中窗口边框去掉后怎么能让窗口被拖动需要加什么东西
加鼠标按下和释放的事件监听 根据鼠标位置设置窗体的位置
⑶ Java 窗口移动
监听一下窗口关闭事件就可以了WindowEvent。 监听到关闭事件后代码大概如下
:假设向左移动出窗口
int locationX ;
while(locationX > 0)
{
locationX -= 10;
this.setLocation(locationX, y);
this.repaint();
Thread.sleep(50);
}
哦。向下移,就是修改y坐标的。也和上面差不多。放心好了。不会不舒服,利用Thread.sleep控制移动延迟,locationY -= speed控制移动的幅度。
⑷ 如何使用Java代码实现人物在整个窗口中间不动,场景进行移动类似于超级玛丽那样的
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class WalkMian extends JFrame implements KeyListener {
Image img;
Image back;
int x = 80, y = 450, dir = 0, num = 0;
// Main
public static void main(String args[]) {
new WalkMian();
}
// Constructor
WalkMian() {
super("Character");
img = getToolkit().getImage("c:\\IMAGE\\walk.png");
back = getToolkit().getImage("c:\\IMAGE\\back.jpg");
addKeyListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(Color.gray);
setSize(800, 610);
setVisible(true);
}
// Paint
public void paint(Graphics g) {
int yoff;
g.drawImage(back, 0, 0, this);
if (img != null) {
yoff = 144;
g.drawImage(img, x, y, x + 144, y + 144, 144, -144+144*dir, yoff + 144, 144*dir,
this);
}
}
⑸ java如何获取窗口移动后的位置
a.setLayout(new FlowLayout());改成a.setLayout(new FlowLayout(FlowLayout.RIGHT));
指定在布局中居右对齐
⑹ java可以不可以像按键精灵一样,将一个程序的窗口移动到指定屏幕的坐标如果可以,求关键代码。
这个的话,我只能提供一条路子,请查看Java的API,有一个类叫做Robot,其中是这样介绍的:
public class Robot
extends Object
此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT
组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove
将实际移动鼠标光标,而不是只生成鼠标移动事件。
注意,某些平台需要特定权限或扩展来访问低级输入控件。如果当前平台配置不允许使用输入控件,那么试图构造 Robot 对象时将抛出
AWTException。例如,如果 X 服务器不支持(或没有启用)XTEST 2.2 标准扩展,则 X-Window
系统会抛出异常。
出于自测试之外的目的而使用 Robot 的应用程序应妥善处理这些错误条件。
从以下版本开始:
⑺ JAVA SWING 无边框(无TITLE)窗体如何实现窗体移动
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
public class test extends JFrame{
private int xx, yy;
private boolean isDraging = false;
public test(){
setUndecorated(true); // 没有标题栏
setSize(200, 200);
setVisible(true);
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
isDraging = true;
xx = e.getX();
yy = e.getY();
}
public void mouseReleased(MouseEvent e) {
isDraging = false;
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
if (isDraging) {
int left = getLocation().x;
int top = getLocation().y;
setLocation(left + e.getX() - xx, top + e.getY() - yy);
}
}
});
}
public static void main(String[] args) {
test t =new test();
t.setDefaultCloseOperation(3);
}
}
⑻ java中如何可以用鼠标拖着一个窗口但使两个窗口同时移动,像千千静听的两个窗口一样
监听ComponentListener,如:
import java.awt.Rectangle;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) {
final JFrame frame1 = new JFrame();
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setBounds(200, 200, 400, 400);
final JFrame frame2 = new JFrame();
frame1.addComponentListener(new ComponentAdapter() {
public void componentMoved(ComponentEvent e) {
Rectangle rect = frame1.getBounds();
frame2.setLocation(rect.x+rect.width, rect.y);
}
});
frame2.setSize(300, 300);
frame1.setVisible(true);
frame2.setVisible(true);
}
}
⑼ JAVA从窗口跳转到另一个窗口怎么写!
package com.swing.skip;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* 窗口跳转
* @author lichen
* @time 2013-1-16
*/
public class CloseSkip extends JFrame{
JFrame frame1;
public void win1(){
frame1=new JFrame("test1");
JPanel panel=new JPanel(true);
JButton btn1=new JButton("Start");
panel.add(btn1);
frame1.add(panel);
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
new CloseSkip().win2(frame1);
}
});
frame1.setBounds(300, 200, 500, 200);
frame1.setVisible(true);
frame1.setResizable(true);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void win2(JFrame frame){
frame.setVisible(false);
JFrame frame2=new JFrame("test2");
JPanel panel=new JPanel(true);
JButton btn2=new JButton("Stop");
panel.add(btn2);
frame2.add(panel);
frame2.setBounds(1000, 100, 200, 600);
frame2.setVisible(true);
frame2.setResizable(true);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new CloseSkip().win1();
}
}
⑽ 怎么编写java程序实现"在窗口中,有一个图片循环地从窗口的左面移动到窗口的右边"
package test.test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
public class TestCopy {
public static void main(String[] args) {
final JFrame f = new JFrame();
JPanel p = new JPanel(new GridLayout(2,1));
f.setContentPane(p);
final JPanel p1 = new JPanel(new BorderLayout());
final JLabel label = new JLabel();
p.add(p1);
p1.add(new JTextField(),BorderLayout.CENTER);
JButton bt = new JButton("COPY");
p1.add(bt,BorderLayout.EAST);
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
BufferedImage bi = (BufferedImage)f.createImage(p1.getWidth(),p1.getHeight());
Graphics g = bi.createGraphics();
p1.print(g);
label.setIcon(new ImageIcon(bi));
}
});
JPanel p2 = new JPanel(new BorderLayout());
p.add(p2);
p2.add(label);
f.setSize(400,400);
f.show();
}
}