如何使用path2d绘制多边形并查看某个点是否位于其区域内?

我试图使用带有path2d的多个顶点绘制任何类型的多边形形状,我想稍后使用java.awt.geom.Area查看确定点是否在其区域内 public static boolean is insideRegion(Region region, Coordinate coord){ Geopoint lastGeopoint = null; GeoPoint firstGeopoint = null; final Path2D boundary = new Path2D.Double(); for(GeoPoint geoponto : region.getGeoPoints()){ if(firstGeopoint == null) firstGeopoint = geoponto; if(lastGeopoint != null){ boundary.moveTo(lastGeopoint.getLatitude(),lastGeopoint.getLongitude()); boundary.lineTo(geoponto.getLatitude(),geoponto.getLongitude()); } lastGeopoint = geoponto; } boundary.moveTo(lastGeopoint.getLatitude(),lastGeopoint.getLongitude()); boundary.lineTo(firstGeopoint.getLatitude(),firstGeopoint.getLongitude()); final Area area = new Area(boundary); Point2D point = new […]

如何将一组数字分成两组,使其总和的差异最小

如何编写Java程序将一组数字分成两组,使得各个数字之和的差异最小。 例如,我有一个包含整数的数组 – [5,4,8,2]。 我可以把它分成两个arrays – [8,2]和[5,4]。 假设给定的一组数字,可以像上面的例子一样有一个独特的解决方案,如何编写一个Java程序来实现解决方案。 即使我能够找出最小可能差异也没关系。 假设我的方法接收一个数组作为参数。 该方法必须首先将接收的数组分成两个数组,然后添加其中包含的整数。 此后,它必须返回它们之间的差异,使得差异可能最小。 PS-我在这里看了一下,但找不到任何具体的解决方案。 这里似乎给出了最可能的解决方案 – 将一个arrays分成两组,差别很小 。 但我无法从该线程中收集如何编写Java程序以获得问题的明确解决方案。 编辑: 看完@Alexandru Severin的评论后,我尝试了一个java程序。 它适用于一组数字[1,3,5,9],但不适用于另一组[4,3,5,9,11]。 以下是该计划。 请建议更改: – import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class FindMinimumDifference { public static void main(String[] args) { int[] arr= new int[]{4,3,5,9, 11}; FindMinimumDifference obj= new FindMinimumDifference(); obj.returnMinDiff(arr); […]

TestNG:确定接下来的测试方法

我的目标是在每个测试方法之后清除()我的javax.persistence.EntityManager。 以下是测试类的示例: public class Example { @Test(dataProvider = “sampleDataProvider”) public void testA(String parameter) { System.out.println(parameter); } @Test(dataProvider = “sampleDataProvider”) public void testB(String parameter) { System.out.println(parameter); } } 通过向DB查询测试数据,然后使用以下格式编译,在dataProvider“sampleDataProvider”中使用entityManager: new Object[2][1] 。 请记住,在实际运行测试方法(使用@DataProvider注释)之前完成数据的查询和编译,并且我们实际上是在查询实体而不仅仅是字符串。 上面的测试类将如下运行: testA(“some queried entity 1”) testA(“some queried entity 2”) testB(“some queried entity 1”) testB(“some queried entity 2″) 我最初的解决方案是使用@AfterTest注释来清除entityManager。 然而,它会在testA和testB的第二次运行(或第二次测试实例)之前从entityManager中分离”some queried entity 2” ,这会导致对”some […]

如何将JTable列设置为String并排序为Double?

我还是Java的新手,对JTable(更具体地说是JXTable)有问题,并按列类对混合数据类型进行排序……让我详细说明…… 我有一个JXTable,用于保存产品列表的数据。 这个表有一个价格列,我只设置为String.class,这样我就可以显示前缀为’$’的价格。 我遇到的问题是当行按价格排序时,它们不是按双打排序,而是按字符串排序,所以这些值: 89.85,179.70,299.40,478.80 分类为: 179.70,299.40,47.80,89.85(升序)和89.85,47.80,299.40,179.70(降序) 我想要做的是在排序时删除’$’并将列排序为双打。 我怎么做到这一点? 编辑: 非常感谢Jiri Patera的回复。 帮助我理解tablecellrenderer负责在这些类型的情况下操纵值,这是一个很大的帮助。 以下是最终完成我想要的摘录。 public Component getTableCellRendererComponent(JTable pTable, Object pValue, boolean pIsSelected, boolean pHasFocus, int pRow, int pColumn) { // Use the wrapped renderer Component renderedComponent = mWrappedRenderer.getTableCellRendererComponent(pTable, pValue, pIsSelected, pHasFocus, pRow, pColumn); Component renderedComponentHeader = pTable.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(pTable, pValue, pIsSelected, pHasFocus, pRow, pColumn); if (pColumn == […]

将JBoss AS 7库添加为Gradle依赖项

我需要在项目中添加JBoss 7.1.1库作为Gradle依赖项,因为我需要在编译时使用它们。 但我所拥有的所有依赖项都是从Maven Repo中添加的。 我已经看到了如何做到这一点,我可以将它们添加为providedCompile依赖项,在这里使用这种技术。 但是我将它与什么联系起来呢? 如何将我在JBoss模块中使用的库添加为Gradle依赖项? 编辑 我已经看到我可以向我的依赖项添加一个文件树,如下所示: dependencies { provided fileTree(dir: ‘myDir’, include: ‘*.jar’) } 但它不能递归地工作。 它只添加了定义的文件夹,JBoss AS 7.1.1将所有的jars分解为模块,有什么方法可以引用整个模块文件夹,而不是每个特定的文件夹? 我想要做的就像这样,但它不适用于这种语法: dependencies { provided fileTree(dir: ‘%JBOSS_HOME%/modules’, include: ‘*.jar’) }

Java Regex如何查找String是否包含字符,但顺序不是问题

我有这样的字符串“abcdefgh” 我想检查字符串是否包含以下字符[fcb] 条件是:字符串必须包含 任何顺序的所有字符。 如何为这个写一个正则表达式。 我试过跟随正则表达式: 。* [fcb]。* —>在这种情况下,它不会检查所有字符。 如果任何一个字符匹配,它将返回true

JSF ViewScoped变量无法幸存重定向到同一页面

使用下面的代码,我在selectOneRadio上使用一个监听器来重定向到url中带有查询字符串的页面。 问题是,当我被重定向时, newsTitle和selectedNews的值为null。 为什么是这样? 是因为我正在使用FacesContext进行重定向? news.xhtml contentEditorBacking.java @ManagedBean @ViewScoped public class ContentEditorBacking { private String newsTitle = null; private String selectedNews = null; public String getNewsTitle() { return newsTitle; } public void setNewsTitle(String newsTitle) { this.newsTitle = newsTitle; } public String getSelectedNews() { return selectedNews; } public void setSelectedNews(String selectedNews) { this.selectedNews = selectedNews; } […]

在Java中,是否可以动态创建仅给定父类实例的匿名子类实例?

在Java中,是否可以动态创建仅给定父类实例的匿名子类实例? 我试图实现的模式代码如下所示: public interface IStringCarier { public String getStr(); } public static IStringCarier introduce(Object victim, final String str) { // question subject } public class AAA { } public static void main() { AAA aaa = new AAA(); assert !(aaa instanceof IStringCarier); IStringCarier bbb = introduce(aaa, “HelloWorld”); assert aaa == bbb; assert “HelloWorld”.equals(bbb.getStr()); } 实际上还有2个关于此代码的要求问题: […]

带有transactionIdPrefix的DefaultKafkaProducerFactory会在引导服务器关闭时等待

HY, 我正在使用spring-kafka 1.3.0.RELEASE创建一个事务生成器。 当引导服务器关闭时,DefaultKafkaProducerFactory会无休止地等待,直到引导服务器启动。 我究竟做错了什么 ? 我可以设置超时和/或其他类似属性吗? 这是我重现场景的代码示例: public static void main(String[] args) { final DefaultKafkaProducerFactory producerFactory = new DefaultKafkaProducerFactory(producerConfigs()); producerFactory.setTransactionIdPrefix(“transactionIdPrefix”); final Producer producer = producerFactory.createProducer(); System.out.println(“Created producer:” + producer); } private static Map producerConfigs() { final Map props = new HashMap(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, “192.168.56.1:9092”); props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, “org.apache.kafka.common.serialization.StringSerializer”); props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, “org.apache.kafka.common.serialization.StringSerializer”); props.put(ProducerConfig.RETRIES_CONFIG, 1); props.put(ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION, 1); props.put(ProducerConfig.TRANSACTION_TIMEOUT_CONFIG, 1000); props.put(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG, […]

如何实现在执行结束时自动关闭的线程池?

我正在编写一个理论上可以在不同环境中使用的Java客户端:Java main(),servlet容器或dependency injection。 客户端实现内部连接线程池。 这种方法的问题在于,客户端的用户不知道实现内部线程池的事实将使他或她的应用程序在关闭时“挂起”。 我的用户需要知道向库发送shutdown()消息。 我想知道是否可以采取任何其他替代方法,一方面,允许我为我的连接启动一个线程池; 而且,另一方面,捕获一些事件,可能是一个JVM事件,表明JVM正在关闭,这将允许我调用我的shutdown()实现。