向Swing Pros致以问候,这是一个很好的(我希望)问题.
以下是我看到的任务要求和可能的解决方案.我想有人有这样的铁杆经验来分享一些关于这个的想法.
这不需要编码或类似的东西,我只需要一般性建议,关于我需要使用驻留在sun.swing和/或javax.swing.plaf包中的私有符号的事实,哪种方法更可靠.
任务是修改/改变JFileChooser行为(实际上只是一点点).
当用户在文件名JTextField中按Enter键,并且该字段包含dir的路径时,不要"选择"目录,而是切换到它.是的,对话框配置为接受目录,但我们只需要接受"打开"按钮的点击,并且(可能)双击文件列表表.
通过在文件名文本字段中输入,阻止用户选择数据超过1GB的目录/文件
以下是一些常规解决方案选项:
一个.聆听JFileChooser提供的基于属性的更改(事后触发哪个AFAICS,并且不会提供我们需要的控制程度).
湾 修改javax.swing.plaf.basic.BasicFileChooserUI(通过refrection,打破私有级封装)并修改引用
private Action approveSelectionAction = new ApproveSelectionAction();
Run Code Online (Sandbox Code Playgroud)
这样我们的自定义操作就会对1和2进行额外检查.这种方法与plaf包链接,如果在此UI类下面的某个类中以某种方式覆盖此操作,则可能会失败.
C.遍历JFileChooser组件层次结构,找到JTextField(显然应该只在组件树中出现一次),使用我们的自定义检查装饰挂在JTextField上的所有动作侦听器.我的调试会话显示这个JTextField是生活在sun.swing.FilePane中的JTextField的一些匿名子类.这种方法似乎更友好,但是对于某些操作系统来说,这个文本字段可能不存在,或者其他一些JTextField也存在于层次结构中.
好吧,似乎公共JFileChooser API不足以实现这种行为,而其他两个选项要么是深度魔术还是不可移植(长期),要么两者兼而有之.
所以,问题是:你会选择哪种方法?为什么?
我正在为Java应用程序编写一个插件.我可以对插件进行模糊处理,但它仍然可以很容易地进行逆向工程.
我相信如果我可以将这个插件编译成一个共享库,它大量使用JNI与主应用程序通信,那么逆向工程就会困难得多.我愿意为JNI牺牲一些性能,我编写的应用程序确实支持共享库加载.唯一的问题是我不知道有一个工具可以完成这项工作:gcj似乎依赖于它自己的运行时和IKVM.NET - 在.NET上
确切地说:
public class PluginImpl implements Plugin {
@Override
public void startPlugin(PluginContext ctx) {
ctx.helloWorld();
}
}
Run Code Online (Sandbox Code Playgroud)
应转换为
public class PluginImpl implements Plugin {
@Override
public native void startPlugin(PluginContext ctx);
}
Run Code Online (Sandbox Code Playgroud)
并且我的startPlugin方法的主体被编译成一个共享库.
(嗯,是的,我知道,我本可以在C中首先编写这个插件)
假设我有数组string[] weekDays = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };,我想找出包含's'的数组元素的索引.我怎么能用Linq做到这一点?
我已经尝试了int[] indexOfDaysContainingS = weekDays.Where(day => day.Contains("s")).Select((day, index) => index).ToArray();,但这0,1,2可能会返回,因为它可能是IEnumberable<string>在Where()子句之后得到过滤的索引.如果我首先放置Select(),那么我所拥有的只是索引,不能按天来过滤.
我需要改变什么来使其工作并返回1,2,3?
我需要以这样的方式启动外部可执行文件,即用户可以与刚刚启动的程序进行交互.
例如在OpenSuse Linux中有一个包管理器--Zypper.您可以在命令模式下启动zypper,并为其提供安装,更新,删除等命令.
我希望以用户可以与之交互的方式从Java代码运行它:输入命令并查看他启动的程序的输出和错误.
这是我尝试使用的Java代码:
public static void main(String[] args) throws IOException, InterruptedException {
Process proc = java.lang.Runtime.getRuntime().exec("zypper shell");
InputStream stderr = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
char ch;
while ( (ch = (char)br.read()) != -1)
System.out.print(ch);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是我只能看到它的输出:
zypper>
Run Code Online (Sandbox Code Playgroud)
但无论我写什么,我的输入都不会影响已启动的程序.我该怎么办?
对于以下HTML,我想解析它并使用Nokogiri获得以下结果.
event_name = "folk concert 2"
event_link = "http://www.douban.com/event/12761580/"
event_date = "20th,11,2010"
Run Code Online (Sandbox Code Playgroud)
我知道 doc.xpath('//div[@class="nof clearfix"]')可以获得每个div元素,但我应该如何继续获得每个元素,event_name尤其是date?
HTML
<div class="nof clearfix">
<h2><a href="http://www.douban.com/event/12761580/">folk concert 2</a> <span class="pl2"> </span></h2>
<div class="pl intro">
Date?25th,11,2010<br/>
</div>
</div>
<div class="nof clearfix">
<h2><a href="http://www.douban.com/event/12761581/">folk concert </a> <span class="pl2"> </span></h2>
<div class="pl intro">
Date?10th,11,2010<br/>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 这是我的代码。我想将3个文件上传到我的数据库中
首先在View中,我这样写:<%using(Html.BeginForm(Actionname,Controller,FormMethod.Post,new {enctype =“ multipart / form-data”})){%> ..... ....
这是3个文件更新:
<input type="file" name="files" id="FileUpload1" />
<input type="file" name="files" id="FileUpload2" />
<input type="file" name="files" id="FileUpload3" />
Run Code Online (Sandbox Code Playgroud)
在控制器中,我使用以下代码:
IEnumerable<HttpPostedFileBase> files = Request.Files["files"] as IEnumerable<HttpPostedFileBase>;
foreach (var file in files)
{
byte[] binaryData = null;
HttpPostedFileBase uploadedFile = file;
if (uploadedFile != null && uploadedFile.ContentLength > 0){
binaryData = new byte[uploadedFile.ContentLength];
uploadedFile.InputStream.Read(binaryData, 0,uploadedFile.ContentLength);
}
}
Run Code Online (Sandbox Code Playgroud)
但是文件总是返回NULL :(
请帮助我,谢谢。
你好,大家好,任何人都可以建议我如何使用设备独立的像素(dip),sip和转换px以使用示例代码进行dip.
我有一个C++/CLI库,我想在Silverlight应用程序中使用它.应该可以在任何.NET语言中为Silverlight编写代码,但到目前为止我只研究了如何编译C#.Silverlight似乎无法使用为.NET编译的DLL.
我正在使用Visual Studio 2010和Silverlight 4. Silverlight唯一可用的新项目是C#项目.将代码移植到C#不是一个实用的选择.
如何为Silverlight编译C++/CLI代码?
compiler-construction silverlight c++-cli visual-studio-2010 silverlight-4.0
如何编写一个向类添加方法的函数?我有:
class A:
def method(self):
def add_member(name):
self.new_method = def name...?
add_member("f1")
add_member("f2")
Run Code Online (Sandbox Code Playgroud)
为了回答我正在尝试做的事情.我试图分解出一些pyqt插槽.我希望能够调用一个函数create_slider来创建一个QSlider和一个QLabel并创建滑块处理代码,并使滑块处理程序更新文本QLabel.这是需要考虑的插槽:
def on_sample_slider(self, value):
self.samples = pow(4, value)
self.sample_label.setText('%d' % self.samples)
Run Code Online (Sandbox Code Playgroud)
这是一个生成一些UI的方法,但是每次调用它时都会生成on_sample_slider方法会很好:
def insert_labeled_slider(hbox, name, slider_target):
# name
hbox.addWidget(QLabel(name))
# label
label = QLabel()
label.setMinimumSize(40, 0)
hbox.addWidget(self.sample_label)
#slider
slider = QSlider(Qt.Horizontal)
slider.setRange(0, 6)
slider.setTracking(True)
slider.setPageStep(1)
hbox.addWidget(slider)
self.connect(self.sample_slider, SIGNAL('valueChanged(int)'),
self.on_sample_slider)
self.sample_slider.setValue(0)
return (label, slider)
Run Code Online (Sandbox Code Playgroud)
最终代码:
def attach_on_slider(obj, name, variable, label, base):
def on_slider(self, value):
variable = base**value
label.setText('%d' % variable) …Run Code Online (Sandbox Code Playgroud) 我需要你的帮助 !!!!
我想从Windows服务连接到SQL服务器,但它抛出以下异常:
用户'NT AUTHORITY\ANONYMOUS LOGON'登录失败.
我的连接字符串声明如下:
<add name="CoreConnectionString"
connectionString="Data Source=10.10.2.102;Initial Catalog=DataBaseName;
Integrated Security=True"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
当我使用用户名和密码而不是Integrated Security = True它可以工作,但在最终部署中我不能使用用户名和密码.
有什么问题我该怎么办?
java ×4
android ×1
arrays ×1
c# ×1
c++-cli ×1
eclipse ×1
jfilechooser ×1
linq ×1
native ×1
nokogiri ×1
outputstream ×1
python ×1
ruby ×1
silverlight ×1
sql-server ×1
stream ×1
swing ×1
xml ×1