HTTP/2 302
server: nginx
date: Mon, 19 Jan 2026 23:51:34 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20070728043353
location: https://web.archive.org/web/20070728043353/https://agent4java.dev.java.net/
server-timing: captures_list;dur=1.192163, exclusion.robots;dur=0.087944, exclusion.robots.policy;dur=0.062446, esindex;dur=0.022293, cdx.remote;dur=27.099423, LoadShardBlock;dur=276.828658, PetaboxLoader3.datanode;dur=132.057354, PetaboxLoader3.resolve;dur=33.617418
x-app-server: wwwb-app220-dc8
x-ts: 302
x-tr: 342
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app220; path=/
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Mon, 19 Jan 2026 23:51:35 GMT
content-type: text/html;charset=UTF-8
x-archive-orig-date: Sat, 28 Jul 2007 04:33:53 GMT
x-archive-orig-server: Apache
x-archive-orig-x-powered-by: Servlet 2.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)/Tomcat-5.5
x-archive-orig-pragma:
x-archive-orig-cache-control: private,max-age=0,must-revalidate
x-archive-orig-helmloginid: guest
x-archive-orig-connection: close
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sat, 28 Jul 2007 04:33:53 GMT
link:
; rel="original",
; rel="timemap"; type="application/link-format",
; rel="timegate"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: IA-AROUND-THE-WORLD-2007-20070728041241-05321-crawling021-c/IA-AROUND-THE-WORLD-2007-20070728042822-09792-crawling01.us.archive.org.arc.gz
server-timing: captures_list;dur=0.609350, exclusion.robots;dur=0.023835, exclusion.robots.policy;dur=0.010136, esindex;dur=0.013071, cdx.remote;dur=11.974992, LoadShardBlock;dur=69.154649, PetaboxLoader3.datanode;dur=118.386735, load_resource;dur=137.868696, PetaboxLoader3.resolve;dur=55.388391
x-app-server: wwwb-app220-dc8
x-ts: 200
x-tr: 270
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
agent4java: Project Home Page
Get Involved
Project tools
How do I...
agent4java
Project home
Notice: the projects area will be down for network maintenance from 8 pm to 10 pm PDT, Saturday 7/28. We regret any inconvenience.
If you were registered and logged in , you could join this project.
Agent for Java (A4J)
Introduction
The term agent became from Eiffel language. In
Eiffel, agents
are used to link Controls, Events and Actions (or methods) in a
gracefull maner.
This project aims to port (and extend) agents for the
Java language.
Basic example
Using an agent to create a focus lost listener that
proposes an email address based on the user name.
package foo;
public class TestAgent extends JFrame {
private JLabel lblName = new JLabel(“Name:”);
@Agent(event=”focusLost”,action=”proposeMail”)
private JTextField txtName = new JtextField(20);
private JTextField txtMail = new JtextField(20);
public static void main(String args[]) {
TestAgent t = new TestAgent(“Test Agent”);
t.add(lblName);
t.add(txtName);
t.add(txtMail);
t.pack();
t.setVisible(true);
}
}
In another package...
package bar;
public class SomeActions {
public void proposeMail() {
JTextfield source = (JTextField) = AgentUtil.get(“foo.TestAgent.txtName”);
JTextField target = (JTextField) = AgentUtil.get(“foo.TestAgent.txtMail”);
target.setText(source.getText() + “@itsfun.com”);
}
}
This example is very simple. Many other ways to
conect and run agents are available.
Current status
This project is under construction. Originated from
Merlin ideas, in a few days more information will be available.