我想使基于JDialog的窗口处于非活动状态,因此禁用所有控件(灰色).setEnabled(false)只是无法点击任何控件,甚至关闭窗口.但没有什么变成灰色.请帮忙.
编辑:这是示例代码.
import javax.swing.JButton;
import javax.swing.JDialog;
public class Analyzer extends JDialog{
public Analyzer() {
JButton but = new JButton("test");
setLayout(null);
but.setBounds(10,10,100,100);
add(but);
setSize( 200, 200);
setVisible(true);
setEnabled(false);
}
public static void main(String[] args) {
new Analyzer();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我想在 MacOS X 上作为服务运行。我使用 JSVC 作为包装器,目前它在控制台中启动得很好,关闭过程是正确的,等等。所以现在我必须将其注册为服务。找到了一些手册,编写了.plist文件。接下来我执行了
sudo launchctl load /Library/LaunchDaemons/my.service.plist
sudo launchctl start my.service
Run Code Online (Sandbox Code Playgroud)
但什么也没发生。服务没有启动。
列表内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.service</string>
<key>ProgramArguments</key>
<array>
<string>/servertest/MYService</string>
<string>-jvm</string>
<string>server</string>
<string>-outfile</string>
<string>out.txt</string>
<string>-errfile</string>
<string>err.txt</string>
<string>-verbose</string>
<string>-debug</string>
<string>-home</string>
<string>/System/Library/Frameworks/JavaVM.framework/Home</string>
<string>-cp</string>
<string>./lib/hsqldb.jar:./lib/my-wrapper.jar:./lib/commons-daemon-1.0.8.jar</string>
<string>my.service.DaemonMac</string>
</array>
<key>WorkingDirectory</key>
<string>/servertest</string>
<key>StandardOutPath</key>
<string>/servertest/stdout.log</string>
<key>StandardErrorPath</key>
<string>/servertest/stderr.log</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我注意到了这一点:我的类有boolean成员,在某些运行点我看到它在调试器中的价值null.但是当我使用getter方法时,它会返回false.
我知道,大多数书都告诉你,boolean在Java中只有两个值,不像C/C++,其中每个非零数字都可以解释为true.所以我想知道,那里发生了什么?
当其他类型的某些值或null可被解释为时,还有其他任何情况false吗?也许在JLS的某个地方解释这个问题,有人可以指点我吗?
编辑:确实昨天是调试的糟糕日子.首先,我浪费了4个小时来找到一个错误的来源,当我逆转来源并再次做出相同的改变时,这个错误消失了.然后这个.我只是试图重现而不能.它是美化还是只是星期一是艰难的一天?我不知道.感谢大家的回应!我想你可以投票立即关闭或删除这个问题.
我明白"2.5"自动是双倍的,为了使它成为一个浮点数,我需要做"2.5F"(或者F应该是小写?),并且我应该使用浮点数,比方说,如果我有一个常数只需要2个小数位(如安大略省PST税的"0.08F"),但我不确定"12"是int还是long,但我知道"12L"是长的,但是"长" l = 12"和"long l = 12L"似乎编译成相同的东西,如果我想要最大的非浮点精度,我使用long,如果我知道我不需要超出int的限制,则使用int.
如果那里有不对的东西,请纠正我,并回答我的问题.
我有遗留代码示例,它使用JFreeChart和XYPlot.现在我正在为该代码制作i18n,大多数非英语字符串比英语字符串长得多.我用google搜索包裹字符串的方法.没有成功.请帮忙!
我正在尝试创建简单的网络应用程序.并坚持数据源注入.似乎有几个问题.所以我将从困惑开始.据我所知,有两种(至少)方法将DataSource注入Servlet:
web.xml示例
<resource-ref>
<res-ref-name>jdbc/MyDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<injection-target>
<injection-target-class>ua.test.TestServlet</injection-target-class>
<injection-target-name>dataSource</injection-target-name>
</injection-target>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
@Resource示例
public class TestServlet extends HttpServlet{
@Resource
private DataSource dataSource;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Run Code Online (Sandbox Code Playgroud)
我的困惑:web.xml在我的简单项目中在Tomcat 7中不起作用.在我看来,web.xml选项应该工作,因为在Java 5之前没有注释.请解释.
更新:
数据源配置
<Resource name="jdbc/MyDB"
type="javax.sql.DataSource"
auth="Container"
username="SA"
password=""
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:file:~/database/my_db"
/>
Run Code Online (Sandbox Code Playgroud) 我正在编写支持多人游戏的Android视频游戏.有一个专用的服务器运行,当通过打开套接字点击多人游戏按钮时,机器人连接到这个服务器(这很好).服务器基本上只是作为配对系统.
当客户端托管游戏时,服务器会将该客户端添加到主机列表中.其他客户端可以选择查看此列表,然后连接到该主机.这就是问题所在.服务器应该跟踪主机的ip /端口,然后其他客户端应该使用此信息与主机打开套接字然后游戏启动.我正在尝试让主机将自己的IP地址发送到服务器以供其他客户端稍后使用.
到目前为止,我尝试了很多方法.一个是:
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
}
Run Code Online (Sandbox Code Playgroud)
这将返回10.0.2.15,这显然对其他客户端无用.
我试过的另一种方法是:
String hostName = InetAddress.getLocalHost().getHostName();
InetAddress addrs[] = InetAddress.getAllByName(hostName);
for (InetAddress addr: addrs) {
System.out.println ("addr.getHostAddress() = " + addr.getHostAddress());
System.out.println ("addr.getHostName() = " + addr.getHostName());
System.out.println ("addr.isAnyLocalAddress() = " + addr.isAnyLocalAddress());
System.out.println ("addr.isLinkLocalAddress() = " + …Run Code Online (Sandbox Code Playgroud) 我想用Java做动画.我看过:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
令我惊讶的是,在计时器动作处理程序中:
这对我来说有点奇怪,因为:
问题:我是否错误地阅读了示例代码,或者这是用Java做动画的"正确"方法?
谢谢!
我们说java遵循单个继承模型,即Java类最多只能扩展一个类.然后说每个java类都是从Object类继承的.
假设有两个类A和B.A和B都从Object扩展.现在假设A扩展B.是不是暗示A有多重继承(A是从B和Class对象继承)?
java ×7
swing ×2
android ×1
animation ×1
boolean ×1
daemon ×1
double ×1
inheritance ×1
jdialog ×1
jfreechart ×1
jsvc ×1
label ×1
long-integer ×1
macos ×1
networking ×1
null ×1
servlets ×1
tomcat7 ×1
web.xml ×1