转换 JPanel 和 JButton 以与 IOS 一起工作,避免“无头”错误需要什么



我正在通过一个教科书示例来使用JButton进行简单JPanel,当我在Mac上运行它时,它可以正常工作。当我尝试在IOS(IpadPro(上运行它时,会产生错误,该错误定义为预期包含键盘,显示器或鼠标的环境未找到。在这种情况下,iPadPro具有键盘和显示屏。它使用触摸而不是鼠标。所以,我的问题是,我应该改变什么才能使这个最基本的程序在触摸环境中工作,而不是用鼠标?有修复吗?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PushCounterPanel extends JPanel {
private int count;
private JButton push;
private JLabel label;
public PushCounterPanel() {
    count=0;
    push=new JButton("Push me");
    push.addActionListener(new ButtonListener());
    label=new JLabel("Pushes: "+count);
    add(push);
    add(label);
    setBackground(Color.cyan);
    setPreferredSize(new Dimension(300,40));
    
}
private class ButtonListener implements ActionListener
{
    public void actionPerformed(ActionEvent event)
    {
        count++;
        label.setText("Pushes: "+count);
    }
}
}

由于它可以在台式机(MacBook(上运行,我以为它会在IpadPro上运行,但它会产生此错误:

java.awt.HeadlessException
    at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:202)
    at java.desktop/java.awt.Window.<init>(Window.java:534)
    at java.desktop/java.awt.Frame.<init>(Frame.java:423)
    at java.desktop/javax.swing.JFrame.<init>(JFrame.java:224)
    at PushCounter.main(PushCounter.java:5)

不幸的是,OpenJDK for iOS 不支持 AWT。你必须尝试其他东西,比如RoboVM或Gluon。

最新更新