小编Cra*_*lus的帖子

java swing vs mvc:这种模式确实可行吗?

我是新手,但设法创造了一个下降的gui.
我的问题是,我无法应用参考/教程中建议的模式,主要是MVC模式.

是我,还是在JTree中使用SwingWorker,是不是可以清楚地分离控制器/视图/模型?
例如,我使用Swingworker,但是我无法在设计中"适应"控制器.

即控件的动作本质上是在doBackground方法中,例如在按钮的动作执行中.
所以没有控制器类.

swing工作器中的操作结果是更新一个Jtree,所以我将结果传递给一个名为model的类,但是这个类必须能够访问JFrame里面的Jtree的treeModel,即视图,所以没有明确分离视图和模型.

我查看了很多教程,但是所有呈现MVC都有一个简单的例子,在大多数情况下,视图(只是一些标签!)更新了所有内容.我是否完全混淆,或者在使用swingworkers和jtree的swing应用程序中集成MVC模式是不可行的,或者至少不容易?

我在谈论实际的域数据,而不是在swing组件中实现的MVC.

有人可以帮助我(并避免让我摆脱这种可怕的头痛),或者概述一下如何处理这种设计,或者至少有一个教程,这是有用的,有一个非常重要的例子吗?

谢谢

java model-view-controller swing design-patterns jtree

10
推荐指数
2
解决办法
1616
查看次数

适用于Java的最佳开源WSDL/XML编辑器

哪个被认为是最好的免费WSDL可视化编辑器?我在java工作,如果它有所作为.

java xml wsdl xml-editor

9
推荐指数
1
解决办法
2万
查看次数

我是否应该接受信托锚签署的OSCP响应者证书?

有人可以帮助我以下吗?
RFC2560定义何时可以接受OCSP响应者证书(签署响应):

   1. Matches a local configuration of OCSP signing authority for the
   certificate in question; or

   2. Is the certificate of the CA that issued the certificate in
   question; or

   3. Includes a value of id-ad-ocspSigning in an ExtendedKeyUsage
   extension and is issued by the CA that issued the certificate in
   question."
Run Code Online (Sandbox Code Playgroud)

我的问题是:
如果OCSP响应者的证书是由验证路径的信任锚签名的,它是否也被认为是被接受的?
我的印象应该是,但这并没有在RFC上明确说明,也没有找到明确的参考.

从我对RFC的阅读来看,即使它是由TA签署的,它仍然对OCSP响应无效.
感谢任何帮助
注意:我正在使用java,以防万一

更新:
在RFC的2.2节中:

所有明确的响应消息都应进行数字签名.
用于签署响应的密钥必须属于以下之一:

- 颁发相关证书 的CA--
请求者信任其公钥的可信响应者
- CA指定响应者(授权响应者),持有由CA直接颁发的特殊标记证书,表明响应者可能发布该CA的OCSP响应

第2点对我来说似乎含糊不清.
它可能意味着:
a)任何PK可信任,因此Trust Anchor是可接受的

b)在第一个引用中具有point(1)的含义,这意味着预先配置证书(any)以信任为OCSP响应者,例如在这里完成:

   Security.setProperty("ocsp.responderCertSubjectName",ocspCert.getSubjectDN().getName));
   List<X509Certificate> list = new …
Run Code Online (Sandbox Code Playgroud)

java security cryptography ocsp pki

9
推荐指数
1
解决办法
1705
查看次数

ArrayBlockingQueue和add vs put vs capacity

来自ArrayBlockingQueue ArrayBlockingQueue的 Javadoc :

public boolean add(E e)

Inserts the specified element at the tail of this queue if it is possible 
to do so immediately without exceeding the queue's capacity, returning true 
upon success and throwing an IllegalStateException if this queue is full.
Run Code Online (Sandbox Code Playgroud)

我总是把这个陈述(部分if it is possible to do so immediattely)解释如下:

如果队列具有可用容量,则插入将成功.如果没有空的空间那么它就不会成功.

但我的理解在这里是错误的.

在一个简单的例子中,我决定使用一个ArrayBlockingQueue例如20个元素(小队列)并让一个线程做:

queue.take()

add尽管队列几乎为空,但另一个线程没有通过该方法向队列添加元素.

我也通过调试验证了它.

一旦我取代的号召queue.add(element),以queue.put(element)元素确实加入到队列中.

那么这些方法有什么不同呢?

由于其他原因(除了能力)可能不会发生增加?


更新:

public class ConnectionListener implements Observer {

  public …
Run Code Online (Sandbox Code Playgroud)

java queue concurrency multithreading data-structures

9
推荐指数
1
解决办法
1万
查看次数

JVM内存:为什么任务管理器上的内存与JProbe(或JConsole工具)不同

我遇到的问题是我的应用程序使用的内存只有100MB,之后它减少了50MB,但是在Window Task Manager上显示150MB并且始终保持或增加但不减少,我们如何减少任务管理器上的内存(私有工作集)?

java memory monitoring profiling jvm

9
推荐指数
1
解决办法
5430
查看次数

如何从eclipse/osgi应用程序中包含对jar文件的依赖?

我创建了一个Eclipse 4应用程序,我需要jar提供一个功能作为我的应用程序的一部分(这可能是任何事情,例如log4j使其变得微不足道).
我添加了jar作为项目的classpath(Right Click->Configure Build Path)的一部分,但在运行时我的服务失败并出现ClassNotFound错误(我猜是来自OSGI?).
无论如何,搜索到这一点,至少据我所知,我应该将jar作为另一个的一部分添加,Plugin并从我的应用程序/服务创建一个依赖于这个新的插件.
即我创造了一个Plugin Project from Existing JAR archives.
这次设置工作.
所以,如果我理解这一点,在为Eclipse/OSGi开发时,我们不应该jars直接添加类路径,而是通过插件添加它们(为什么?).
问题:如果到目前为止我是正确的,jars在开发项目时要包括哪些标准做法?
定义/创建一个Plugin Project from existing JAR archives并添加所需的所有必需的第三方库,或者根据需要jar 其他可能的其他插件项目???
对不起,如果我的术语不准确.我是OSGi和Eclipse编程的新手

注意:谈到jars我不是指其他OSGi服务.我指的是使用应用程序的许多部分所需的准备好的,可靠的第三方库的规范.例如,log4j或xml解析库apache commons

java eclipse plugins osgi eclipse-plugin

9
推荐指数
2
解决办法
7140
查看次数

如何处理根证书的撤销?

撤销证书有几个原因,最受欢迎的是破解私钥.

我的问题是:
如果需要撤销证书颁发机构的证书会发生什么?

这是否意味着它已签署的所有证书都应被视为已撤销?
这似乎是合理的,因为CA将颁发新证书,因此是新的密钥对.

另一方面,到目前为止,特定CA已经发布的撤销和重发可能数百份证书的流程是什么?

我对撤销CA证书的后果感到困惑.
有人可以详细说明吗?

security ssl cryptography certificate

8
推荐指数
3
解决办法
7458
查看次数

LinkedHashMap如何在幕后工作?

我读到LinkedHashMap和描述(虽然非常有趣)我无法理解它是如何实际完成它的工作的.作为旁注,我知道HashMapJava中的工作原理.
所以我查看了源代码,仍然无法弄清楚它是如何工作的.也许在这种情况下我并没有抓住OOP的基本内容所以请耐心等待.
来概括,那会搞乱我的部分是:
LinkedHashMap代表所有其父的电话HashMap.
在内部它覆盖HashMap.Entry来实现各种recordAccessrecordRemoval这似乎实现的逻辑方法,LinkedHashMap
但实际Entries是基类的表内即HashMap该实例的表HashMap.Entry不和LinkedHashMap.Entry.
所以,我想不出如何使用各种recordAccessrecordRemove等实际上被调用.
那么有谁能帮我理解这里发生了什么?
我是否正确认为这LinkedHashedMap.Entry是由HashMap?创建的表的类型?但是怎么样?

更新:
我的问题是如何recordAccess调用.我使用衍生版本HashMap失败的实验,因为盛源路(+1) - 我的不好

更新:
我尝试的以下内容与我正在做的相同(我认为)LinkedHashMap:

package delete;  

public class Base<T> {  

    Entry<T>[] table;  
    int idx = 0;  
    @SuppressWarnings("unchecked")  
    public Base(){  
        System.out.println("In base");  
        table = new Entry[10];  
    }

    public void add(T x){  
        table[idx] = …
Run Code Online (Sandbox Code Playgroud)

java oop collections dictionary hashmap

8
推荐指数
1
解决办法
1515
查看次数

这个位操作在Java中如何工作?

我正在研究Java如何计算int的位集.
在我的脑海里,我有一些简单的东西(我认为是正确的):

public static int bitCount(int number){  
        final int MASK = 0x1;  
        int count = 0;  

        for(int i = 0; i < 32; i++){  
            if(((number >>> i) & MASK) == MASK){  
                count++;  
            }  
        }  
        return count;  
    }  
Run Code Online (Sandbox Code Playgroud)

相反,我找到了一种方法,我完全不知道在做什么(对我来说似乎很神奇):

 i = i - ((i >>> 1) & 0x55555555);  
 i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);  
 i = (i + (i >>> 4)) & 0x0f0f0f0f;  
 i = i + (i >>> 8);  
 i = i + (i >>> …
Run Code Online (Sandbox Code Playgroud)

java integer bit-manipulation

8
推荐指数
1
解决办法
1187
查看次数

如何有意义地为java.lang.Class <T>定义hashCode和equals?

如果需要使用a Class<T>作为键的一部分Map来定义hashCode和的正确方法是什么equals
A Class<T>继承Object检查引用相等性并将内存地址作为哈希码返回的那些,但在我看来,不清楚a的有意义的定义equalshashCode定义是什么Class<T>.
我应该使用theClass.getClass().hashCode();例如(我们有Class<T> theClass;)使用实际实例的方法吗?
但这似乎不是正确的做法.
例如在javadocClass<T>:

每个数组也属于一个类,它反映为一个Class对象,由具有相同元素类型和维数的所有数组共享

所以在某些情况下似乎在Class<T>对象之间共享?那么接下来的方法是什么?也许使用theClass.hashCode()theClass.equals()使用引用相等?这里根本不确定.

java hash equals hashmap hashcode

8
推荐指数
1
解决办法
1522
查看次数