使用下拉列表在Java中创建自动完成文本框

我想创建一个自动建议文本框,它将在每个密钥释放事件中查询数据库。 那部分很简单,但我想给它一个很好的视觉效果。 类似于我们在Facebook搜索等网站中看到的自动建议文本框。 如何制作这样的界面? 一个天真的想法是将JList放在文本框的正下方,并将其设置为可见,并在其中找到一个结果。 这样做有更好的想法或标准方法吗?

从servlet输出图像文件

如何在servlet中提供存储在硬盘上的图像? 例如: 我有一个存储在路径’Images/button.png’ ,我想在一个带有URL file/button.png的servlet中提供这个’Images/button.png’ 。

关闭tomcat时停止计划的计时器

我有一个部署到Tomcat服务器的WAR文件,其中一个类将在启动时调用,然后init()方法将安排一个计时器每5小时触发一次以执行某些任务。 我的init()代码如下所示: public void init() { TimerTask parserTimerTask = new TimerTask() { @Override public void run() { XmlParser.parsePage(); } }; Timer parserTimer = new Timer(); parserTimer.scheduleAtFixedRate(parserTimerTask, 0, PERIOD); } 我的应用程序运行没有问题,但当我使用/etc/init.d/tomcat7停止关闭Tomcat时,我检查日志(catalina.out)它有一个这样的条目: 严重:Web应用程序[/ MyApplication]似乎已经启动了一个名为[Timer-0]的线程,但未能阻止它。 这很可能造成内存泄漏。 我明白这是由我安排计时器引起的,但我的问题是: 我没有将setDeamon设置为true,所以定时器不应该阻止Tomcat关闭,而不是继续运行? 我可以在我的应用程序中检测Tomcat是否会关闭并取消我的计时器? 我可以用什么其他解决方案来解决这个问题? 谢谢! UPDATE 我根据一些搜索和DaveHowes的答案将我的代码更改为以下内容。 Timer parserTimer; TimerTask parserTimerTask; public void init() { parserTimerTask = new TimerTask() { @Override public […]

Java日期格式转换 – 错误的月份

我在java中转换日期有问题,不知道我哪里错了… String dateStr = “2011-12-15”; String fromFormat = “yyyy-mm-dd”; String toFormat = “dd MMMM yyyy”; try { DateFormat fromFormatter = new SimpleDateFormat(fromFormat); Date date = (Date) fromFormatter.parse(dateStr); DateFormat toformatter = new SimpleDateFormat(toFormat); String result = toformatter.format(date); } catch (ParseException e) { e.printStackTrace(); } 输入日期是2011-12-15,我期待结果为“2011年12月15日”,但我认为它是“2011年1月15日” 我哪里错了?

使用java servlet在浏览器中显示Pdf

我的应用程序中有pdf文件。 我需要在浏览器中显示pdf。 我正在将文件作为fileInputStream读取,我需要在我的应用程序中使用浏览器显示pdf。 但我没有pdf路径,我有文件流。 请给我一些建议和例子 我用ajax来显示pdf,我使用call_method()javascript ajax请求方法来调用showPdf动作,在showpdf动作中只是将pdf文件转换为ByteArrayOutputStream并将结果写在out put流中。 但它显示了下面提到的结果。 JSP中的结果 : %PDF-1.4% 1endstream endobj 4 0 obj >> / MediaBox [0 0 595 842] >> endobj 1 0 obj endobj 3 0 obj endobj 5 0 obj endobj 6 0 obj endobj xref 0 7 0000000000 65535 f 0000000389 00000 n 0000000015 00000 n 0000000477 […]

如何在JPanel中设置背景图片

你好我使用JPanel作为我的框架的容器然后我真的想在我的面板中使用背景图片我真的需要帮助这是我的代码到目前为止。 这是更新,请在这里查看我的代码 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class imagebut extends JFrame { public static void main(String args []) { imagebut w = new imagebut(); w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); w.setSize(300,300); w.setVisible(true); } public imagebut() { setLayout(null); // 🙂 PicPanel mainPanel = new PicPanel(“picturename.jpg”); mainPanel.setBounds(0,0,500,500); add(mainPanel); } class PicPanel extends JPanel{ private BufferedImage image; private int w,h; public […]

正确的实施方式等于合同

我有一个名为User的域对象。 用户的属性包括ssoId,name,email,createdBy,createdDate和userRole。 其中, ssoId必须是唯一的 ,没有两个用户可以拥有相同的sso id。 所以我的equals方法检查sso id并返回true或false。 @Override public boolean equals(Object o) { if (!(o instanceof User)) return false; return user.getSsoId().equals((User)o.getSsoId()); } 我觉得这是一个不正确的实现,尽管就业务规则而言是正确的。 对于具有相同sso id但具有不同的名称或电子邮件或两者的值的两个对象,上述实现将返回true。 我应该更改我的等于合同以检查所有字段的相等性吗? 你的建议是什么?

Java中的音量控制(增加或减少)

如何使用Java增加传出wav音频流的音量? 我遇到了各种Java TTS引擎和合成语音输出量的问题。 是否有API调用或doo-hickey.jar我可以用来提高音量?

我在哪里为Tomcat的连接池放置JDBC驱动程序?

所以我已经弄清楚了我的错误,现在我只是在寻找一些关于究竟发生了什么的见解。 我正在使用Apache Tomcat版本7.0.32。 我正在使用本教程为JDBC设置池。 在我的META-INF文件夹中,我创建了一个context.xml文件并将其放在那里。 我写这篇文章时遇到了这个错误 WARNING: Unexpected exception resolving reference java.sql.SQLException: com.mysql.jdbc.Driver at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254) at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:699) at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:631) at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:485) at org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.java:143) at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116) at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103) at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:539) at org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:237) at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) at org.apache.naming.NamingContext.lookup(NamingContext.java:843) at org.apache.naming.NamingContext.lookup(NamingContext.java:154) at org.apache.naming.NamingContext.lookup(NamingContext.java:831) at org.apache.naming.NamingContext.lookup(NamingContext.java:168) at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1061) at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:671) at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:270) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) […]

JFreeChart折线图,每个点都有文字

我想把文字放在我在折线图上绘制的每个点上。 这就是我能做的: 这就是我需要的(点的名称是绿色的):