场景:我有一个JFrame并JPanel添加到其中JFrame.在这个面板上,我使用了以下三个图像:
public void paint(graphics g) {
g.drawImage(img1,100,100,null);
g.drawImage(img2,200,200,null);
g.drawImage(img3,300,300,null);
}
Run Code Online (Sandbox Code Playgroud)
我已经实现MouseListener了监听点击的界面.现在,我希望每当我点击任何这些图像时,我的输出(在命令提示符下使用System.out.println();)应该是我点击的图像对象?
请解释一下我有可能,怎么样?
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.imageio.*;
import java.lang.*;
import java.io.*;
import javax.swing.*;
public class MainClass extends Component{
private Image bg;
private ImageIcon newgame;
private ImageIcon quit;
private ImageIcon options;
private JButton bquit;
private JButton boptions;
private JButton bnewgame;
private static Container pane; //Container
public void loadImage() {
try {
bg=ImageIO.read(new File("bg1.png"));
} catch (Exception e) {
}
if(bg!=null)
repaint();
}
public void paint(Graphics g) {
g.drawImage(bg,0,0,null);
}
public void imageButtons(JFrame f) {
try {
quit= new ImageIcon("quit.png");
options=new …Run Code Online (Sandbox Code Playgroud) 我试图从使用的方法执行异步调用CompletableFuture.完成该任务后,我试图打印对象DummyObject的值,这些对象是调用异步调用的方法的本地对象.
我想知道它是如何工作的?thread(myThread)在3秒后死亡,DummyObject超出范围,thenAccept中的Async回调仍然打印正确的值.线程是否在DummyObject上获得锁定?或者其他事情正在发生?
请注意,我只是想模拟一个场景.所以我正在使用Thread.stop().
编辑 - 问题是关于thenAccept Consumer如何处理范围?请保持与此相关的答案.
以下计划的输出:
Starting Async stuff
Thread Alive? false
Reached Main end and waiting for 8 more seconds
James T. Kirk
United Federation of Planets
Run Code Online (Sandbox Code Playgroud)
AsyncTest.java
public class AsyncTest {
public static void main(String args[]) {
Thread myThread = new Thread() {
@Override
public void run() {
DummyObject dummyObj = new DummyObject();
dummyObj.setObjectName("James T. Kirk");
dummyObj.setObjectNationality("United Federation of Planets");
System.out.println("Starting Async stuff");
new AsyncTaskExecuter().executeAsync().thenAccept(taskStatus -> {
if(taskStatus.booleanValue()) {
System.out.println(dummyObj.getObjectName()); …Run Code Online (Sandbox Code Playgroud) java ×3
mouseevent ×2
swing ×2
asynchronous ×1
concurrency ×1
image ×1
java-8 ×1
jbutton ×1
jpanel ×1