关闭应用程序时调用Java Finalize方法

我对finalize方法有疑问。 如果我有许多具有许多inheritance的类,那么当应用程序关闭时如何调用所有finalize方法?

Android webserver将html页面显示为文本

我正在开发一个Android应用程序,它将Android设备变成一个multithreading的Web服务器,我使用的代码没有任何错误,但运行正常,它可以通过Web浏览器看到,但它显示html文件的来源为文本而不是完整GUI。 这是我的代码.. Jhttsclass: package dolphin.developers.com; import java.io.File; import java.io.IOException; import java.net.InetAddress; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.widget.Toast; import dolphin.devlopers.com.R; public class JHTTS extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.server); try { String IndexFileName = “index.htm”; File documentRootDirectory = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + “/”); […]

具有可选域轴和缩放的JFreeChart

如何获得https://www.amcharts.com/demos/line-chart-with-scroll-and-zoom/等图表 我对这些function特别感兴趣 能够使用这两个选择控件选择域轴的窗口。 能够通过选择域轴的一部分进行缩放。 能够缩小并查看更大的图片。 能够映射到范围轴(Y)并在任何点上看到该气球上的值,如工具提示(无标记) 我在这里初步尝试Scrollable JFree域轴和自定义标记标签借助trashgod我使域可滚动。 我仍然缺少这些function,以便能够有效地使用图表。

Java阻止JComponent的焦点

我为我的申请做了一个gui。 JFrame有2个JPanel,panel1和panel2。 panel1就是这样,一个带有自定义绘画的JPanel,每5毫秒重绘一次。 panel2是我第一次尝试CardLayout:它包含JPanels subPanel1和subPanel2。 subPanel1包含一个JComboBox并添加到panel2: panel2.add(subPanel1); 。 subPanel2有.setLayout(new CardLayout()); 命令,我添加3个新的JPanels,适当的itemListener和所有。 当然我也添加它: panel2.add(subPanel2); 现在问题是:在Java中集中组件。 我知道方法setFocusable(boolean)和requestFocus() 。 但我不能让它们以任何合乎逻辑的方式行事。 首先,它们的根本问题是:当combobox获得焦点时,我根本无法完全聚焦它(尝试用光标点击到处)。 以下是我进行的实验: 1)没有任何代码在整个应用程序中进行聚焦,无论将哪个命令面板1和面板2添加到JFrame,combobox都从焦点开始。 2)如果我设置了panel1.setFocusable(true); (在它的构造函数中)它将从焦点开始 3)如果我设置了panel1.setFocusable(false); 并要求专注于它,它没有得到它。 (只有按预期工作的东西) 4)如果我将panel2,subPanel1或subPanel2设置为单独或以任何组合不可聚焦,它们仍然可以获得焦点(combobox,即,这是唯一能够注册焦点的组件)。 5)如果我将combobox设置为不可聚焦,我仍然可以使用框’itemListener在CardLayout中的卡之间滚动,但焦点不会粘在它上面。 事实上,panel1仍然记录键盘输入 所以我真的很担心整个’焦点’的事情。 也许这不是我认为的那样? 我想要做的是完全阻止与panel2的所有交互,直到一个标志(每5毫秒评估一次)为真。 我是否正确假设与JPanel不同,JComboBox会自动拥有一个mousebuttonListener,以便在点击时获得焦点? 如果不是,那么如何完全禁用JComboBox和当前卡显示的所有组件? 不可聚焦组件中的组件仍然可以聚焦是否是正常行为?

将选定的JFrame组件打印到打印机

我有这个用Java开发的应用程序。 我想只打印一些组件,例如“客户名称”,“表格”和“日期”。 我已经完成了这个例子,但我无法正确打印。

Jar将图像作为资源

我正试图从我的jar子里加载一个图像。 但无论我为getResource()提供什么字符串,它总是返回null。 try { System.out.println(Bootstrapper.class.getResource(“./img/logo.png”).toURI().getPath()); } catch (URISyntaxException ex) { Logger.getLogger(CrawlerFrame.class.getName()).log(Level.SEVERE, null, ex); } ImageIcon ii = new ImageIcon(Bootstrapper.class.getResource(“./img/logo.png”)); setIconImage(ii.getImage()); net.sharpcode.crawler.ui.CrawlerFrame中net.sharpcode.crawler.ui.CrawlerFrame.init(CrawlerFrame.java:35)中的线程“AWT-EventQueue-0”java.lang.NullPointerException中的exception。(CrawlerFrame.java: 28)at net.sharpcode.crawler.Bootstrapper $ 1.run(Bootstrapper.java:55) 我试过了: getResource(“”) getResource(“.”) getResource(“./”) getResource(“/img/logo.png”) Bootstrapper.class.getProtectionDomain().getCodeSource().getLocation().getPath()

摇摆的GUI指南

是否有解释摇摆的GUI设计的资源? 像最佳实践等。

如何处理tomcat PermGen空间

背景 :我有一个使用JSP的Web项目。 IDE是Eclipse。 tomcat的配置是:资源发生变化时自动发布,发布间隔为“1秒”。 classes文件夹中的属性文件,用于保存一些设置。它也可以由servlet动态修改。 修改操作由JSP中的save按钮进行分区。 问题 :在几次保存操作之后,Tomcat带有java.lang.OutOfMemoryError: PermGen space 。 日志消息 java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58) at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1064) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3083) at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1279) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1571) at […]

获取“main”java.lang.UnsupportedOperationException

在执行这段代码时,我在第81行得到了一个java.lang.UnsupportedOperationException。我知道发布整个代码是违反赌注的做法,但我认为除非我发布整个代码,否则很难传达我正在做的事情。 基本上我想从List中删除所有出现的元素,所以我正在做List.removeAll(Collection)。 我无法理解我在81号线上做错了什么。感谢您的帮助! import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.*; import java.util.Map.Entry;; public class MinCutClass { /** * @param args */ private HashMap verticeMap ; private List edgeList ; public MinCutClass() { verticeMap = new HashMap(); edgeList = new ArrayList(); } public static void main(String[] args) { // TODO Auto-generated method stub […]

尝试解析LocalDateTime时出现exception

我使用以下时间戳格式: yyyyMMddHHmmssSSS 以下方法工作正常: public static String formatTimestamp(final Timestamp timestamp, final String format) { final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); return timestamp.toLocalDateTime().format(formatter); } 并且,当我使用该格式字符串传入时间戳时,它会返回,例如: 20170925142051591 然后我需要再次从该字符串映射到时间戳,基本上是反向操作。 我知道我可以使用SimpleDateFormat及其parse()方法,但如果可能的话,我更愿意坚持使用java.time样式格式。 我写了这个(相当hacky)的一些代码,它适用于某些格式,但不适用于这个特定的格式: public static Timestamp getTimestamp(final String text, final String format, final boolean includeTime) { final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); final TemporalAccessor temporalAccessor = formatter.parse(text); if (includeTime) { final LocalDateTime localDateTime […]