「java取程序窗口」java调用窗口

博主:adminadmin 2023-01-27 14:24:07 338

今天给各位分享java取程序窗口的知识,其中也会对java调用窗口进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求java窗口程序编程?

package window;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class Window extends JFrame{

public static int num = 0;

public static void main(String[] args) {

new Window();

}

public Window(){

//设置x y坐标

this.setLocation(400, 500);

//设置窗口大小

this.setSize(512, 512);

//设置窗口可见

this.setVisible(true);

//设置窗口关闭后程序停止

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置窗口不可移动

this.setResizable(false);

JButton but1 = new JButton("按钮");

final JTextField text1 = new JTextField(10);

Java能否获得Windows程序的窗口Handle并发送消息求解

用jni方式,先用c\c++做个调用windows句柄的程序,编译成dll,然后用java通过jni方式调用它,给他传值,让c\c++程序调用。

有这方面相关的demo的吗?或者说这方面的dll

如何使用Jab获取Java应用程序窗口信息

使用过AutoIt等类似工具编程的读者应该对窗口自动化工具并不陌生,这是一类利用模拟键盘鼠标等手段与Windows应用程序窗口及其控件进行交互,并自动化完成某些任务的程序.其原理是利用Windows底层窗口及其控件均使用统一的消息传递机制,通过模拟这种消息传递来达到模拟键盘鼠标等的功能,在AutoIt函数库中有ControlClick,ControlSend等函数,通过AutoIt自带的Au3 Window Info工具获取Control的相关信息后,作为参数传递给这些函数,即可完成模拟功能,非常便捷.

java能获得窗口句柄吗

JFrame jf = new JFrame("窗口句柄");

这个 jf 对象就是 你所说的窗口句柄,因为java把指针屏蔽了,所以没有什么值地址的东西,如果你 要像C里面哪里传地址的话

java就这样

JFrame jf1 = new JFrame("窗口句柄");

JFrame jf2 = jf1;

这个jf2 就是 jf1的引用,你改变jf2就改变了jf1

同样的 函数里面返回时,只要你不再new一个,

比如

JFrame jf1 = new JFrame("窗口句柄");

public JFrame getJFrameHander(){

return jf1;

}

你在另外的代码里调用这个函数

比如

{

JFrame jf2 = getJFrameHander();

}

这个jf2就拥有了 jf1的引用,应该就是你所说的句柄

不知道我说的是不是你想知道的那样

想知道JAVA有没有获取当前运行程序窗口的方法

Java是可以做窗口程序的,但是做起来复杂,因为整个窗口都要由自己一点一点的去画,不你C#那样什么东西都要以拖过来就可以了。

JAVA 获得窗口大小问题

楼主是想让控件随frame大小变化

首先,建一个frame文件(Application应用程序),在Design中将this中的layout设置为null(不要布局器);

第二,在组件盘内点选Swing Container页签,选取Jpanel图标,在this上方拖拽一块区域,同样的方法在下方也拖拽一块区域,为了方便区分,将上方的Jpanel1区域设置为红色,下方的Jpanel2区域设置为橙色。将Jpanel1和Jpanel2的layout设置为null(不要布局器)。

第三,在Jpanel中放入一个Jlable标题栏,JTextField1文本框和Jbutton按钮,在组件盘内点选Swing 页签,选取JLable图标在Jpanel1的左边画一个标题栏,将text改为“请输入查询条件”,再选取JtextField在Jpanel1的中间画一个文本框,将text改为空,最后选取Jbutton在Jpanel1又边画一个按钮将text改为“查询”。在Jpanel2中画三个Jbutton按钮,将text分别设为“增加”、“删除”、“修改”。

第四,在this的中间建一个表格用来显示数据库数据的内容,在Swing Container页签,选取jScrollPane图标,在this的中间拖拽一个大的区域,接着在组件盘内点选Swing 页签,选取JTable图标,将Jtable加入到jScrollPane中。

这样我的界面就做好了,但这个界面不能随窗口自动调整大小。下面编程实现手动布局,使各区域能随窗口自动调整大小。

先用鼠标选中this窗体,再选择右边的事件Events中的componentResized,双击鼠标就进到void this_componentResized(ComponentEvent e) {}中,在{}中写入下列代码:

//设置jPanel1的起点坐标

jPanel1.setLocation(0,0);

//设置jPanel1的高度和宽度

jPanel1.setSize(this.getWidth(),jPanel1.getHeight());

//设置jPanel2的起点坐标(37是标题栏的高度)

jPanel2.setLocation(0,this.getHeight()-jPanel2.getHeight()-37);

//设置jPanel1的高度和宽度

jPanel2.setSize(this.getWidth(),jPanel2.getHeight());

//设置jScrollPanel的起点坐标

jScrollPane1.setLocation(0,jPanel1.getHeight());

//设置jScrollPanel的高度和宽度

jScrollPane1.setSize(this.getWidth(),jPanel2.getY()-jPanel1.getHeight());

本程序只调整了Jpanel1、Jpanel2和JScrollPane1随窗口变化,同样的方法,可以使按钮、文本框等一起随窗口变化。

程序在“查询”按钮事件中模拟从数据库中取数据,并显示在表格中。为了简洁,程序没有对输入条件、增加、删除、修改等进行处理。

程序源代码:

package src

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.Vector;

import javax.swing.table.DefaultTableModel;

public class Frame1 extends JFrame {

JPanel jPanel1 = new JPanel();

JPanel jPanel2 = new JPanel();

JScrollPane jScrollPane1 = new JScrollPane();

JTable jTable1 = new JTable();

JLabel jLabel1 = new JLabel();

JTextField jTextField1 = new JTextField();

JButton jButton1 = new JButton();

JButton jButton2 = new JButton();

JButton jButton3 = new JButton();

JButton jButton4 = new JButton();

public Frame1() {

try {

jbInit();

}

catch(Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

Frame1 frame1 = new Frame1();

//定义显示窗体的大小显示窗口

frame1.setSize(400, 350);

frame1.show();

//激活“查询”按钮事件

frame1.jButton1.doClick();

}

private void jbInit() throws Exception {

this.getContentPane().setLayout(null);

jPanel1.setBackground(Color.red);

jPanel1.setBounds(new Rectangle(43, 15, 297, 48));

jPanel1.setLayout(null);

jPanel2.setBounds(new Rectangle(50, 232, 297, 48));

jPanel2.setLayout(null);

jPanel2.setBackground(Color.orange);

jScrollPane1.getViewport().setBackground(Color.pink);

jScrollPane1.setBounds(new Rectangle(53, 74, 287, 138));

jLabel1.setFont(new java.awt.Font("Dialog", 0, 15));

jLabel1.setText("输入查内容");

jLabel1.setBounds(new Rectangle(44, 12, 80, 27));

jTextField1.setText("");

jTextField1.setBounds(new Rectangle(125, 14, 70, 22));

jButton1.setBounds(new Rectangle(221, 12, 61, 24));

jButton1.setFont(new java.awt.Font("Dialog", 0, 13));

jButton1.setText("查询");

jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));

jButton2.setBounds(new Rectangle(13, 14, 66, 27));

jButton2.setFont(new java.awt.Font("Dialog", 0, 13));

jButton2.setText("增加");

jButton3.setText("删除");

jButton3.setBounds(new Rectangle(115, 14, 66, 27));

jButton3.setFont(new java.awt.Font("Dialog", 0, 13));

jButton4.setText("修改");

jButton4.setBounds(new Rectangle(217, 14, 66, 27));

jButton4.setFont(new java.awt.Font("Dialog", 0, 13));

this.addHierarchyBoundsListener(new Frame1_this_hierarchyBoundsAdapter(this));

this.addComponentListener(new Frame1_this_componentAdapter(this));

this.getContentPane().add(jPanel1, null);

jPanel1.add(jTextField1, null);

jPanel1.add(jButton1, null);

jPanel1.add(jLabel1, null);

this.getContentPane().add(jPanel2, null);

jPanel2.add(jButton3, null);

jPanel2.add(jButton4, null);

jPanel2.add(jButton2, null);

this.getContentPane().add(jScrollPane1, null);

jScrollPane1.getViewport().add(jTable1, null);

}

void this_componentResized(ComponentEvent e) {

//设置jPanel1的起点坐标

jPanel1.setLocation(0,0);

//设置jPanel1的高度和宽度

jPanel1.setSize(this.getWidth(),jPanel1.getHeight());

//设置jPanel2的起点坐标(37是标题栏的高度)

jPanel2.setLocation(0,this.getHeight()-jPanel2.getHeight()-37);

//设置jPanel2的高度和宽度

jPanel2.setSize(this.getWidth(),jPanel2.getHeight());

//设置jScrollPanel的起点坐标

jScrollPane1.setLocation(0,jPanel1.getHeight());

//设置jScrollPanel的高度和宽度

jScrollPane1.setSize(this.getWidth(),jPanel2.getY()-jPanel1.getHeight());

}

void jButton1_actionPerformed(ActionEvent e) {

// “查询”按钮事件,模拟从数据库中取数据并显示在表格中

try

{

Vector vcol = new Vector(); //列名

Vector vrow = new Vector(); //内容

//用一个for循环来模拟数据库的内容

for (int col=1;col31;col++) {

vcol.addElement("列"+col);

}

for (int row=1;row101;row++) {

Vector vr1 = new Vector();

for (int col=1;col31;col++) {

vr1.addElement(row+"/"+col);

}

vrow.addElement(vr1);

}

DefaultTableModel dtm=new DefaultTableModel(vrow,vcol);

jTable1 = new JTable(vrow,vcol);

//滚动条设置左右滚

jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

//在滚动条中放入表

this.jScrollPane1.getViewport().add(jTable1, null);

}

catch(Exception ex)

{

System.out.println("错误:" + ex);

}

}

}

class Frame1_this_hierarchyBoundsAdapter extends java.awt.event.HierarchyBoundsAdapter {

Frame1 adaptee;

Frame1_this_hierarchyBoundsAdapter(Frame1 adaptee) {

this.adaptee = adaptee;

}

public void ancestorResized(HierarchyEvent e) {

}

}

class Frame1_this_componentAdapter extends java.awt.event.ComponentAdapter {

Frame1 adaptee;

Frame1_this_componentAdapter(Frame1 adaptee) {

this.adaptee = adaptee;

}

public void componentResized(ComponentEvent e) {

adaptee.this_componentResized(e);

}

}

class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {

Frame1 adaptee;

Frame1_jButton1_actionAdapter(Frame1 adaptee) {

this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

adaptee.jButton1_actionPerformed(e);

}

}

关于java取程序窗口和java调用窗口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。