现在,我有一个JMenu,还有一些JMenuItems.当JMenu和JMenuItem的状态更改为"selected"时,我希望我的程序执行一些操作.我不使用MouseLitener的MouseOver,因为我希望用户也可以使用键盘在菜单中导航.现在,我写了这个监听器:
class MenuItemListener implements ChangeListener {
@Override
public void stateChanged(ChangeEvent arg0) {
JMenuItem item = (JMenuItem) arg0.getSource();
if(item.isSelected())
System.out.println(item.getText()+" pressed!");
}
}
Run Code Online (Sandbox Code Playgroud)
当我将这个监听器添加到JMenu时,它可以正常工作,但是当我将它添加到JMenuItem时,没有任何反应......当我删除if语句以便监听器对两者做出反应时,当菜单被选中并且被选中时我对JMenu以及对于JMenuItem.所以,正如我所见,JMenuItem无法"通过"isSelected()测试......但是什么可能是个问题呢?:S
这是一个简单编辑器的代码.
public class editor {
public static void main(String[] args) {
JFrame f = new JFrame();
final JTextArea area = new JTextArea(20,120);
JScrollPane scrollingResult = new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
f.getContentPane().add(scrollingResult);
...
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用.JTextArea很好,所以是Frame,但JScrollPane仍然是残疾人.为什么会这样?
在发现没有明确的方法来调整 ListView 的大小以适应内容后,我决定扩展 ListView 以在每次添加孩子时调整自己的大小。我试过这段代码,但没有用。可能是什么问题呢?我该如何解决?
public class SmartListView : ListView
{
public SmartListView() : base()
{
ChildAdded += Resize;
}
private void Resize(object sender, ElementEventArgs e)
{
HeightRequest = Height + ((ViewCell)sender).Height;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,回调Resize从未被击中。
我想在鼠标悬停在JMenuItem上时执行一些操作.我应该使用什么样的听众?
我使用Flash Professional CS5嵌入字体,但我仍然无法在我的AS代码中使用它.我应该如何嵌入字体以便能够在AS3以及Flash Professional CS5中使用它?
这是我正在使用的代码:
$from=urldecode($_GET['from']);
$str =urldecode("%2B");
echo "$str<br>";
echo "$from<br>";
Run Code Online (Sandbox Code Playgroud)
这是URL的一部分: from=%2B995594262653
为什么会这样
+
995594262653
Run Code Online (Sandbox Code Playgroud)
?(注意,号码前面有一个空格).我$str用来检查功能是否有效.显然,它适用于简单%2B.可能是什么问题?
如何在ListView的TextCell中包装文字?我尝试设置HasUnevenRows为,True但这无济于事。
我可以等待在不同线程上创建的任务吗?例如:
...
CurrentIteration = Execute(); // returns Task
await CurrentIteration;
...
Run Code Online (Sandbox Code Playgroud)
然后,在另一个线程上:
...
await CurrentIteration;
...
Run Code Online (Sandbox Code Playgroud)
CurrentIteration = Execute(); // returns Task
await CurrentIteration;
在第一个线程?
我试过这段代码:
public class Program
{
public static void Main(string[] args)
{
MainAsync(args).GetAwaiter().GetResult();
}
public static async Task MainAsync(string[] args)
{
var instance = new SomeClass();
var task = instance.Execute();
Console.WriteLine("thread 1 waiting...");
Task.Run(async () =>
{
Console.WriteLine("thread 2 started... waiting...");
await task;
Console.WriteLine("thread 2 ended!!!!!");
});
await task;
Console.WriteLine("thread 1 done!!");
Console.ReadKey();
} …Run Code Online (Sandbox Code Playgroud)