有没有人曾尝试使用Swing构建一个合适的多缓冲渲染环境,在此环境中可以添加Swing用户界面元素?
在这种情况下,我有一个动画红色矩形绘制在背景上.背景不需要每帧更新,因此我将其渲染到BufferedImage上,并仅重绘清除矩形的先前位置所需的部分.请参见下面的完整代码,这扩展了以前的线程通过@trashgod给出的例子,在这里.
到现在为止还挺好; 流畅的动画,低CPU使用率,无闪烁.
然后我将JTextField添加到Jpanel(通过单击屏幕上的任何位置),并通过在文本框内单击来关注它.现在,清除矩形的先前位置会在每个光标闪烁时失败,请参见下图.
我很好奇是否有人知道为什么会发生这种情况(Swing不是线程安全的?图像是异步绘制的?)以及寻找可能解决方案的方向.
这是在Mac OS 10.5,Java 1.6上
JPanel重绘失败了http://www.arttech.nl/javaredrawerror.png
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Transparency;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Timer;
public class NewTest extends JPanel implements
MouseListener,
ActionListener,
ComponentListener,
Runnable
{
JFrame f;
Insets insets;
private Timer t = new Timer(20, …Run Code Online (Sandbox Code Playgroud) 我有以下命令:
java -jar ...\ivy-2.2.0-rc1.jar -ivy ...\ivy.xml
Run Code Online (Sandbox Code Playgroud)
我期望解决依赖关系并将它们复制到我的项目的lib文件夹中.
Ivy似乎解决了依赖关系,但没有复制.如果我运行ant任务,则复制正确.
有谁知道为什么我的命令行调用不会发生复制到lib?
我和我的客户有一些问题.我已经构建了(未设计)一个电子邮件模板,供他们使用Create/Send.我已经使用了Create/Send中的设计测试服务,所有这些服务都按预期进行.但是,当客户端在Outlook 2003中查看电子邮件时,文本格式将丢失(请参阅屏幕抓取).
文档的头部中只有非常少的CSS,当然没有什么可以影响到内部完成的样式.
alt text http://citywest.bangtest.co.uk/stackoverflow/okay.png
alt text http://citywest.bangtest.co.uk/stackoverflow/bad.png
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Run Code Online (Sandbox Code Playgroud)
City West电子公告
<style type="text/css" media="screen">
* { font-family: Arial, san-serif; }
a {color:#000000;}
a img {border:none;}
h3 a { color: #BD2C16; }
.topbannercopy a {color:#ffffff;}
.unsub a {color: #555555; text-decoration:none;}
.unsub a:hover {text-decoration:underline;}
</style>
</head>
<body style="text-align: left;">
<table border="0" bgcolor="#ffffff" cellspacing="0" cellpadding="0" width="591" align="center" style="font-family: Arial, san-serif;">
<tr bgcolor="#e95c55">
<td colspan="4"><img src="img/top-trust.gif" alt="City West Housing Trust. e-Bulletin for …Run Code Online (Sandbox Code Playgroud) SELECT
a.foo
b.bar
c.foobar
FROM tableOne AS a
INNER JOIN tableTwo AS b ON a.pk = b.fk
LEFT JOIN tableThree AS c ON b.pk = c.fk
WHERE a.foo = 'something'
AND c.foobar = 'somethingelse'
Run Code Online (Sandbox Code Playgroud)
在where子句之后使用和子句似乎将左连接转换为内连接.我看到的行为是,如果tableThree中没有'somethingelse',将返回0行.
如果我将c.foobar ='somethingelse'移动到join子句中,则存储的连接将像左连接一样运行.
SELECT
a.foo
b.bar
c.foobar
FROM tableOne AS a
INNER JOIN tableTwo AS b ON a.pk = b.fk
LEFT JOIN tableThree AS c ON b.pk = c.fk
AND c.foobar = 'somethingelse'
WHERE a.foo = 'something'
Run Code Online (Sandbox Code Playgroud)
有人能指出我描述为什么会发生这种情况的文件吗?非常感谢你
我在apache中启用了重写模块.后来我在root中开发了.htaccess文件.
RewriteEngine On
RewriteRule ^test.html $ test.php
Run Code Online (Sandbox Code Playgroud)
但它不起作用?发生内部服务器错误.接下来做什么?
请考虑以下代码段
string src = "ibm,tcs";
string dest = src.Split(',').Select(i => i + "();,").ToArray().Aggregate((s, i) => s + i);
dest = dest.Substring(0, dest.Length - 1);
Run Code Online (Sandbox Code Playgroud)
我正在做的是,源字符串(这里是src)将以逗号分隔的方式使用字符串列表.
最终输出将是: ibm();,tcs();
我们可以知道,我的计划正在这样做.
但我正在帮助dest.Substring(0, dest.Length - 1);消除","我在Select Extension方法中构建的最后一个 .
我不喜欢我的这种做法.
这样做还有其他美丽/优雅的方式吗?我相信有人肯定会以更好的方式接近:)
如果我使用Lambda和扩展方法获得解决方案,我也会很高兴.
我正在使用C#3.0和dot net framework 3.5
谢谢
有没有办法对Oracle触发器进行反编译或反向工程?任何可用的工具,任何免费工具?
谢谢!
我正试图从F#调用一个C库,并遇到了一个奇怪的问题.我有一个包含我所有extern功能的模块.底层C库有两个具有相同名称但不同参数的函数.当然,这在F#模块中是不允许的.
module C =
open System.Runtime.InteropServices
[<DllImport("libc", CallingConvention = CallingConvention.Cdecl)>]
extern int setValue(nativeint source, int value)
[<DllImport("libc", CallingConvention = CallingConvention.Cdecl)>]
extern int setValue(nativeint source, string value)
// the previous function declaration cause the following compile-time error:
// Duplicate definition of value 'setValue'
Run Code Online (Sandbox Code Playgroud)
有什么特殊的方法可以解决这个问题吗?我无法改变C库.
在像GDB这样的调试器中,当您在断点处停止时,您可以轻松地向上移动调用堆栈并检查相关的源和堆栈帧数据.
你如何在Eclipse中做到这一点?
我目前正在deque使用以下方法创建我的对象,
self.CommandList = deque((['S', False, 60],['c'],['g16'],['i50'],['r30', True],['u320'],['o5000'],['b1'],['B4500'],['W1'],['l5154'],['!10'],['p2', True, 10],['e1'],['K20'],['U0'],['Y0']))
Run Code Online (Sandbox Code Playgroud)
但是我希望稍后在队列中添加一个类似的列表但是使用appendleft它,所以它可以跳到列表之前.我假设如下,但没有运气.
NewList = (['S'],['c'],['!10'],['p4'],['o1200'],['i50'],['r30'],['b10'],['d1'],['A', True, 163])
self.CommandList.appendleft(NewList)
Run Code Online (Sandbox Code Playgroud)
这有可能appendleft吗?