使用Collections.unmodifiableMap(...),我试图返回一个不可修改的地图视图.假设我有以下方法,
public final Map<Foo, Bar> getMap(){
...
return Collections.unmodifiableMap(map);
}
Run Code Online (Sandbox Code Playgroud)
为什么在其他地方合法执行以下操作,
Map<Foo, Bar> map = getMap();
map.put(...);
Run Code Online (Sandbox Code Playgroud)
这并不UnsupportedOperationException像我想的那样.有人可以解释一下,或者建议我如何成功地返回真正无法修改的地图?
哪些因素影响适当的设计模式?
澄清:
我问这个问题的原因是因为我正在设计一个需要多个静态工厂类和单例管理器类的应用程序.有时候,我对我应该雇用哪种设计感到困惑,我想问这个社区为什么以及何时可能有助于为我澄清一些事情.
我是JAVA的新手.
我需要运行以MainFrame最大化模式命名的JFrame .
我该怎么做?
public class MainFrame extends javax.swing.JFrame {
/**
* Creates new form MainFrame
*/
public MainFrame() {
initComponents();
}
Run Code Online (Sandbox Code Playgroud) 我想知道你是否可以测试是否点击了JMenu(而不是JMenuItem).我尝试添加一个ActionListener但它似乎没有认出它.我只需要在按下JMenu按钮时执行操作,以便我可以更改该菜单的JMenuItem,因为它打开了.欢迎所有工作以获得这个结果!
谢谢
根据The Java Tutorials,在Java SE 7及更高版本中,您可以在switch语句的表达式中使用String对象.
String s = ...
switch(s){
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
但这是真的吗?我已经安装了JRE并将其添加到我的Eclipse项目的构建路径中,但是我收到以下编译时错误:
无法打开String类型的值.只允许使用可转换的int值或枚举常量
此外,我认为我已经正确配置,因为我能够使用它的java.nio.file.Files类,以及JLayer.
有任何想法吗?
是否在其中一个规范中引用了以"is"开头的方法,而方法名称的后缀是属性的名称(类似于Java bean的getter/setter方法)?
例如:
public boolean isConditionTrue() {
...
...
}
private boolean conditionTrue;
Run Code Online (Sandbox Code Playgroud)
谢谢!
我注意到在做一个数组的长度时,你写的东西如:
arrayone.length;
Run Code Online (Sandbox Code Playgroud)
但是,对于诸如数组列表或字符串之类的东西,您可以在末尾写一个括号,例如以下字符串的长度:
stringone.length();
Run Code Online (Sandbox Code Playgroud)
这个的关键原因是什么?你怎么知道何时放括号或现在?
这是一个例子.
如果你构建并运行TranslucentWindow支持jdk7的NetBeans IDE 7.0,你将得到以下异常:
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated
at java.awt.Frame.setOpacity(Frame.java:960)
at main.TranslucentWindow.<init>(TranslucentWindow.java:23)
at main.TranslucentWindow$1.run(TranslucentWindow.java:47)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
BUILD SUCCESSFUL (total time: 1 second)
Run Code Online (Sandbox Code Playgroud)
根据这个堆栈跟踪,违规行是tw.setOpacity(0.55f).但是,正如错误所示,如果你setUndecorated(true)在框架上调用,那么它不会抛出异常并创建一个半透明的窗口,虽然没有任何装饰(这很痛苦).这是正常的吗?这段代码不应该"开箱即用"吗?我忽略了什么吗?
编辑
为什么他们的半透明窗口看起来是装饰的,还是这个自定义渲染?
这是什么...

应该是什么......

所以,我有这个使用org.apache.commons.net.telnet.TelnetClient该类的类.它尝试发送命令并读取响应.
public class AutomatedTelnetClient
{
private TelnetClient telnet = new TelnetClient();
private InputStream in;
private PrintStream out;
private String prompt = "$";
public AutomatedTelnetClient(String server, String user, String password)
{
try
{
EchoOptionHandler echoopt = new EchoOptionHandler(false, false, false, false);
telnet.addOptionHandler(echoopt);
// Connect to the specified server
telnet.connect(server, 23);
// Get input and output stream references
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
// Log the user on
readUntil("login: ");
write(user);
readUntil("Password: ");
write(password);
// Advance to a …Run Code Online (Sandbox Code Playgroud) 对于那些开发了支持多种语言的面向客户的Java Swing应用程序的人来说,哪种字体最适合显示所有语言的字符?
java ×10
swing ×4
java-7 ×2
string ×2
annotations ×1
arrays ×1
collections ×1
eclipse ×1
fonts ×1
jframe ×1
jmenu ×1
map ×1
netbeans7.0 ×1
spring-mvc ×1
translucency ×1
unicode ×1
unmodifiable ×1