java查找监视器的代码 java自带监控工具

求助!!!java的按钮监视器怎么写啊啊啊???这个 真的没啥意思给按钮添加一个监听监听调用 button的另一个调用图片的构造方法很方便\
package com.test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ButtonDemo {
URL url = this.getClass().getResource("poto.jpg");
public ButtonDemo() {
}
public void showMe() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
final JButton button;
button = new JButton("点击我!");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setIcon(new ImageIcon(url));
}
});
frame.add(panel);
panel.add(button);
frame.setSize(600, 500);
frame.setVisible(true);
}
public static void main(String[] args) {
new ButtonDemo().showMe();
}
}
这是基本的 你看看吧
java里是怎么通过condition接口是获取监视器方法的ReentrantLock和condition是配合着使用的,就像wait和notify一样,提供一种多线程间通信机制 。
ReentrantLock 的lock方法有两种实现:公平锁与非公平锁
看newCondition的源码实现:
final ConditionObject newCondition() {
return new ConditionObject();}
其实就是只实例化一个个conditionObject对象绑定到lock罢了 。也就是拿到了监视器,再深入到conditionObject这个里面实现看看await方法:
public final void await() throws InterruptedException {
if (Thread.interrupted())
throw new InterruptedException();Node node = addConditionWaiter();int savedState = fullyRelease(node);int interruptMode = 0;while (!isOnSyncQueue(node)) {
LockSupport.park(this);if ((interruptMode = checkInterruptWhileWaiting(node)) != 0)
break;}
if (acquireQueued(node, savedState)interruptMode != THROW_IE)
interruptMode = REINTERRUPT;if (node.nextWaiter != null) // clean up if cancelledunlinkCancelledWaiters();if (interruptMode != 0)
reportInterruptAfterWait(interruptMode);}
大概就是将当前线程加入等待队列 , 其中做一些逻辑判断,再来看看唤醒的方法:singal和singalAll:
public final void signalAll() {
if (!isHeldExclusively())
throw new IllegalMonitorStateException();
Node first = firstWaiter;
if (first != null)
doSignalAll(first);
}
其实就是将等待队列里面的线程依次唤醒罢了,doSingalAll:
private void doSignalAll(Node first) {
lastWaiter = firstWaiter = null;
do {
Node next = first.nextWaiter;
first.nextWaiter = null;
transferForSignal(first);
first = next;
} while (first != null);
}
transferForSignal将线程转移到syncQueue重新排队,这里主要用到CAS(lock free)算法改变状态:
final boolean transferForSignal(Node node) {
/*
* If cannot change waitStatus, the node has been cancelled.
*/
if (!compareAndSetWaitStatus(node, Node.CONDITION, 0))
return false;
/*
* Splice onto queue and try to set waitStatus of predecessor to
* indicate that thread is (probably) waiting. If cancelled or
* attempt to set waitStatus fails, wake up to resync (in which
* case the waitStatus can be transiently and harmlessly wrong).
*/
Node p = enq(node);
int ws = p.waitStatus;
if (ws0 || !compareAndSetWaitStatus(p, ws, Node.SIGNAL))
LockSupport.unpark(node.thread);
return true;
}
篇幅有限,没有详细描述...反正多看看源码吧,结合着实例分析
java界面里怎么将从数据库中按条件查询的结果显示在界面里 。。急求首先创建可以可以操作数据库java查找监视器的代码的模型用来实现crud
package model;
/*
* 负责对数据库操作java查找监视器的代码的表模型
*/
import java.sql.*;
public class SqlModel {
static Connection con=null;
static PreparedStatement ps=null;
static ResultSet rs=null;
//ResultSet rs2=null;
public SqlModel(){
try {
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//2、得到连接(指定连接到那个数据源),hosteljava查找监视器的代码:数据源名
con=DriverManager.getConnection("jdbc:odbc:hostel","","");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//负责增、删、改java查找监视器的代码的方法
public boolean update(String sql,String []paras){
boolean b=true;//判断是否删除成功
try {
ps=con.prepareStatement(sql);//向数据库发送sql语句
//利用循环给sql语句中的问号赋值
for(int i=0;iparas.length;i){
ps.setString(i 1, paras[i]);
}
//得到结果
//int rs=ps.executeUpdate();
ps.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return b;
}
//负责查询的方法
public ResultSet query(String sql, String []paras){
try {
ps=con.prepareStatement(sql);//向数据库发送sql语句
//利用循环给sql语句中的问号赋值
for(int i=0;iparas.length;i){
ps.setString(i 1, paras[i]);
}
//得到结果
rs=ps.executeQuery();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
//关闭数据库连接的方法
public void close(){
try {
if(rs!=null){rs.close();}
if(ps!=null){ps.close();}
if(con!=null){con.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
再创建一个表模型java查找监视器的代码,
package model;
import java.sql.*;
import java.util.*;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class Table extends AbstractTableModel{
SqlModel sm;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
Vector Hang,Lie;
//查询的方法
public void ShuJuKuLianJie(String sql,String []paras){
try {
Hang=new Vector();
Lie=new Vector();
SqlModel sm=new SqlModel();
rs=sm.query(sql, paras);
//利用ResultSetMetaData可以得到返回列的列名
ResultSetMetaData rsm=rs.getMetaData();
for(int i=0;irsm.getColumnCount();i){
this.Hang.add(rsm.getColumnName(i 1));
}
while(rs.next()){
VectorString lie=new VectorString();
for(int i=0;irsm.getColumnCount();i){
lie.add(rs.getString(i 1));
}
Lie.add(lie);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(rs!=null){rs.close();};
if(ps!=null){ps.close();};
if(con!=null){con.close();};
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//增删改方法
public boolean ZhengShanGai(String sql,String paras[]){
boolean b=true;//用来返回操作是否成功
SqlModel sm=new SqlModel();
try {
b=sm.update(sql, paras);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sm.close();
}
return b;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
//得到共有多少列
return this.Lie.size();
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
//得到共有多少行
return this.Hang.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
//得到某行某列的数据
return ((Vector) this.Lie.get(rowIndex)).get(columnIndex);
}
public String getColumnName(int column) {
// TODO Auto-generated method stub
return (String)this.Hang.get(column);
}
}
查询过后别忘记刷新表模型
.setModel();方法
请教Java Swing大神一个“添加监视器”的代码问题 。package com.ie;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Test1 {
public static void main(String args[]){
Test1 t = new Test1();
t.practice();
}
public void practice(){
JFrame jf = new JFrame("监听器");
jf.setLayout(null);//关闭布局管理器
jf.setBounds(100, 100, 400, 400);//指定程序窗口的初始位置及大小
JTextField jtf = new JTextField("单行文本输入框");
jf.add(jtf);
jtf.setBounds(10, 10, 100, 20);//指定单行文本输入框在窗口中位置及大小
jtf.addFocusListener(new FocusListenerImpl());
JButton b = new JButton("确定");
jf.add(b);
b.setBounds(10, 40, 100, 20);
jf.setVisible(true);
}
class FocusListenerImpl implements FocusListener{
@Override
public void focusGained(FocusEvent e) {
System.out.println("获得焦点");
}
@Override
public void focusLost(FocusEvent e) {
System.out.println("失去焦点");
}
}
}
JTextFiled获得焦点简单来说就是选中时有输入光标闪动,失去焦点就是输入光标消失,
失焦获焦的用输出语句简单写的 , 看控制台 。
java中怎么样获取显示器宽度和高度的代码方法的代码?import后面用那个包?import java.awt.Toolkit;
Toolkit tk=Toolkit.getDefaultToolkit();
Dimension screensize=tk.getScreenSize();
宽:screensize.width
高:screensize.height
【java查找监视器的代码 java自带监控工具】java查找监视器的代码的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于java自带监控工具、java查找监视器的代码的信息别忘了在本站进行查找喔 。

    推荐阅读