我很难创建一个JTree,它允许通过在JTree中拖放节点来重组节点.这似乎应该相对简单.我在线查看了一些示例,但我似乎无法在自己的代码中实现它.
例如,sun提供的这允许在不同组件之间拖动到树中,而不是从树本身内拖动.
我还发现这可以让你将文本拖到JTree中,但不能在树中拖动.
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.tree.*;
public class DndTree {
public static void main(String args[]) {
Runnable runner = new Runnable() {
public void run() {
JFrame f = new JFrame("D-n-D JTree");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel top = new JPanel(new BorderLayout());
JLabel dragLabel = new JLabel("Drag me:");
JTextField text = new JTextField();
text.setDragEnabled(true);
top.add(dragLabel, BorderLayout.WEST);
top.add(text, BorderLayout.CENTER);
f.add(top, BorderLayout.NORTH);
final JTree tree = new JTree();
final DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); … 我正在尝试通过JavaScript/CSS修改页面(很像Stylish或Greasemonkey).这是一个非常复杂的页面(我没有构建,或者无法修改预渲染),这使得构建CSS选择器很难做到(手动查看文档结构).我怎样才能做到这一点?
我目前正在使用以下代码:
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => {
var name = args.Name + ".dll";
using (var input = Assembly.GetExecutingAssembly()
.GetManifestResourceStream(name)) {
Assembly dll = input != null
? Assembly.Load(input.ToArray())
: null;
return dll;
}
};
Run Code Online (Sandbox Code Playgroud)
在本地的所有实例中,它似乎工作得很好,但是一个客户端在加载包含的dll时遇到问题(它们没有源代码访问权限).
在使用这种类型的动态DLL加载时,是否存在任何我应该注意的信任问题或陷阱?
中等信任问题似乎不是问题,但是我们生成的dll无论如何都要求完全信任.我想这可能归结为安全权限等等.
经过文档之后,我再次注意到我之前跳过的一行,我认为这与我的问题有关.
"从.NET Framework 4开始,为所有程序集(包括资源程序集)引发ResolveEventHandler事件.在早期版本中,没有为资源程序集引发事件.如果操作系统已本地化,则可能会多次调用该处理程序:一次针对后备链中的每种文化."
而在3.5中它不是.当我确认时,我会发布更新.
是否可以使用BitBlt直接从GDI +位图复制而不使用GetHBitmap?
GetHBitmap很慢,因为它创建了整个图像的新副本,除了比BitBlt副本慢,并且必须处理给定的HBITMAP.图像很大.
有没有办法指向BitBlt使用原始GDI +图像的像素数据?
编辑: 我可以获得指向GDI +位图像素数据在内存中的位置的指针.我可以创建一个指向GDI +位图像素数据的HBITMAP以避免额外的复制,并从中创建BitBlt吗?
(如果有必要道歉 - 我的第一个Stack Overflow问题.如果有人有建议,我会很乐意修改它.我已经找到了答案,但我担心我对术语的掌握不够好,无法完成搜索.)
我习惯使用mysql_fetch_array从数据库中获取记录.当以这种方式获取记录时,mysql_num_rows给出了行数.但是,在我当前的项目中,我正在使用mysql_fetch_object.mysql_num_rows似乎不适用于此函数,当我对查询结果进行"计数"时,我得到了预期的答案:1(一个对象).
有没有办法'看到'对象并计算其中的元素?
我有两个关于Windows 7任务预览的问题.在Delphi中,我想在下面的屏幕截图中突出显示的区域内创建自己的按钮.
1)是否可以在任务预览窗口(在Windows 7中)创建自己的控件,例如Winamp可以做什么?或者只是一些有限的多媒体扩展?
2)如果有可能画出自己的按钮我应该从哪里开始?示例或Windows API指南对我有帮助.
非常感谢提前
我需要HTML大师的一些建议.
从语义上来说,我觉得FIELDSET最适合包含用户填写和提交的字段列表的表单.但是,如果没有嵌入的LEGEND元素,页面将无法通过HTML 5验证.我们使用H1标签来标注表单,而不需要LEGEND.
我们可以向FIELDSET添加一个空的LEGEND元素,并修复验证问题.但是有没有更好的东西用于这种情况(除了DIV)?
欣赏任何见解!
这是一项学习练习.我创建了一个方法,它接受一个Foo和一个字符串并设置A属性.我使用Reflector反汇编来生成以下发射代码.反汇编看起来像这样:
.method private hidebysig static void Spork(class ConsoleTesting.Foo f, string 'value') cil managed
{
.maxstack 8
L_0000: ldarg.0
L_0001: ldarg.1
L_0002: callvirt instance void ConsoleTesting.Foo::set_A(string)
L_0007: ret
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我在之后建模了我的发射代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Reflection.Emit;
namespace ConsoleTesting
{
class Foo
{
public string A { get; set; }
}
class Program
{
static Action<Foo, string> GenMethodAssignment(string propName)
{
MethodInfo setMethod = typeof(Foo).GetMethod("get_" + propName);
if (setMethod == null)
throw new InvalidOperationException("no property setter available"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试解析这样的yaml文件:
a:
a1:
a2:
b:
b1:
b11:
b2:
Run Code Online (Sandbox Code Playgroud)
我得到这样的哈希:
{"a"=>{"a1"=>nil, "a2"=>nil}, "b"=>{"b1"=>{"b11"=>nil}, "b2"=>nil}}
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个列表:
%ul
%li a
%ul
%li a1
%li a2
%li b
%ul
%li b1
%ul
%li b11
%li b2
Run Code Online (Sandbox Code Playgroud)
我试图以最有效的方式搜索并不重要哈希有多深
最后我这样做了:
KeyWords = %w(url)
# Convert a multilevel hash into haml multilevel tree
# Special KeyWords
# url : item url
def hash_to_haml(hash, url = nil)
haml_tag(:ul) do
hash.each do |key, value|
unless KeyWords.include?(key)
url = get_url(key, value)
haml_tag(:li) do
haml_tag(:a, :href => url ) do
haml_concat(key) …Run Code Online (Sandbox Code Playgroud) 我有另一个问题,非常有帮助的人.我使用了很多if语句,其中很多都是重复的,我确信可以缩短.这是我目前的一些代码
if (Globals.TotalStands <= 1)
{
ScoreUpdate.StandNo2.Visible = false;
ScoreUpdate.ScoreStand2.Visible = false;
ScoreUpdate.ScoreOutOf2.Visible = false;
}
if (Globals.TotalStands <= 2)
{
ScoreUpdate.StandNo3.Visible = false;
ScoreUpdate.ScoreStand3.Visible = false;
ScoreUpdate.ScoreOutOf3.Visible = false;
}
if (Globals.TotalStands <= 3)
{
ScoreUpdate.StandNo4.Visible = false;
ScoreUpdate.ScoreStand4.Visible = false;
ScoreUpdate.ScoreOutOf4.Visible = false;
}
if (Globals.TotalStands <= 4)
{
ScoreUpdate.StandNo5.Visible = false;
ScoreUpdate.ScoreStand5.Visible = false;
ScoreUpdate.ScoreOutOf5.Visible = false;
}
if (Globals.TotalStands <= 5)
{
ScoreUpdate.StandNo6.Visible = false;
ScoreUpdate.ScoreStand6.Visible = false;
ScoreUpdate.ScoreOutOf6.Visible = false;
}
if (Globals.TotalStands <= 6) …Run Code Online (Sandbox Code Playgroud)