我正在使用具有JTextPane的java创建应用程序.我想能够在enter按下键时(或当用户进入下一行时)执行一些代码.我在网上看了一下,没有找到解决方案.使用C#解决这个问题会更好吗?如果没有,我如何在JTextPane的keyTyped()事件中注册Enter键?如果C#是一个不错的选择,我将如何在C#中执行此操作?
这是我认为可行的解决方案......但没有
//Event triggered when a key is typed
private void keyTyped(java.awt.event.KeyEvent evt) {
int key = evt.getKeyCode();
if (key == KeyEvent.VK_ENTER) {
Toolkit.getDefaultToolkit().beep();
System.out.println("ENTER pressed");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么上面的例子不起作用是因为无论我按哪个键,我得到一个0的keyCode.我更喜欢用Java解决这个问题但是C#也可以工作,也许更好.另外,请尝试用示例而不是链接回答问题(除非您确实需要).谢谢!
我有一个包含JPanel的Java JFrame.在JPanel中,有两个独立的JPanel.当用户单击第一个JPanel中的按钮时,需要将消息发送到另一个JPanel,通知它单击了哪个按钮.在像这样的对象之间发送消息的最简单方法是什么?
我想创建一个应该包含整数和字符串的Arraylist.这可能吗?
我创建了两个Arraylist,如下所示:
ArrayList<Integer> intList=new ArrayList<Integer>();
intList.add(1);
intList.add(2);
ArrayList<String> strList=new ArrayList<String>();
strList.add("India");
strList.add("USA");
strList.add("Canada");
Run Code Online (Sandbox Code Playgroud)
我想将intList和strList放入一个新的ArrayList中.
我能这样做吗?如果是这样,怎么样?
我想打印一个boolean值printf,但我不知道如何.我正在寻找的是像这个虚构的代码
boolean car = true;
System.out.printf("%b",car);
Run Code Online (Sandbox Code Playgroud)
预期产量应为:
true
Run Code Online (Sandbox Code Playgroud)
我该怎么办?或者还有其他方法可以获得预期的输出吗?
我有一个类,比方说MyJFrame我代表我的应用程序的GUI.它实现了接口Observer并覆盖了该方法update.
public class MyJFrame extends JFrame implements Observer{
...
public void update(Observable arg0, Object arg1){
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想让我的JFram成为一个Observable对象,但我不能,因为它已经扩展了类JFrame.我试图在我的类中创建一个Observable类型的变量.
public class MyJFrame extends JFrame implements Observer{
Observable observable = new Observable();
Run Code Online (Sandbox Code Playgroud)
这里的问题是我可以将Observer添加到这个可观察字段,我也可以通知观察者但是我不能调用该方法setChanghed()(因为它被声明为protected),必须在通知之前调用它.
你对我能实现它有什么想法吗?
谢谢!!
快速举例:
public class Test {
public static void main(String[] args) {
String str = " a b";
String[] arr = str.split("\\s+");
for (String s : arr)
System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望数组arr包含2个元素:"a"和"b",但结果中有3个元素:""(空字符串),"a"和"b".我该怎么做才能做到正确?
我有主要的应用程序在哪里是值与表.然后,我点击"添加"按钮,新的CUSTOM(我自己制作)JDialog类型弹出窗口出现.在那里我可以输入值,做一些滴答并点击"确认".所以我需要从对话框中读取该输入,因此我可以将此值添加到主应用程序中的表中.当按下"确认"按钮时我该怎么听,所以我可以在那之后读取该值?
addISDialog = new AddISDialog();
addISDialog.setVisible(true);
addISDialog.setLocationRelativeTo(null);
//somekind of listener...
//after "Confirm" button in dialog was pressed, get value
value = addISDialog.ISName;
Run Code Online (Sandbox Code Playgroud) 我通过从教科书中复制示例来学习Java,一旦我使用GUI类,我就遇到了一些奇怪的故障,如果这是正确的术语.正如您在图像上看到的那样,部分文本丢失了.
生成此对话框的代码也不复杂:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
public class InnerClassTest {
public static void main(String[] args) {
TalkingClock clock = new TalkingClock(1000, true);
clock.start();
// keep program running until user selects "OK"
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}
}
class TalkingClock {
/*
* COnstructs a talking clock
* @param interval the interval between messages (in milliseconds)
* @param beep true if the clock should beep
*/
public TalkingClock(int interval, boolean beep) {
this.interval = …Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse IDE,我正试图showSaveDialog(null)从另一个方法调用,而这个方法又是从main调用的,但是当我调用它时没有任何反应.
主要:
public static void main(String[] args) {
Main main = new Main();
main.pt = main.new PlayThread();
main.generateSound(getSamples(2), 500);
main.play(main.sound, 1);
if(new Scanner(System.in).nextLine().equals("save")){
System.out.println(main.save());
}
}
Run Code Online (Sandbox Code Playgroud)
调用之前的所有代码都main.save()可以正常工作,并且main.save()像这样开始:
public boolean save(){
System.out.println("Calling save");
try{
String saveName = getSaveTo("C:/");
System.out.println("I'm here now");
Run Code Online (Sandbox Code Playgroud)
虽然getSaveTo()看起来像:
public String getSaveTo(String def){
JFileChooser chooser = new JFileChooser();
System.out.println("Save called");
//chooser.setCurrentDirectory(new File(def));
int resp = chooser.showSaveDialog(null);
if(resp == JFileChooser.APPROVE_OPTION){
return chooser.getSelectedFile() + ".wav";
}else return null;
}
Run Code Online (Sandbox Code Playgroud)
在执行前几个函数后main …
我有两个Jframe,其中frame1有一些文本字段,当点击frame1上的一个按钮时,我打开另一个JFrame,其中包含一个搜索框和一个包含搜索结果的JTable.
当我在JTable上单击结果行时,我希望特定值反映在frame1文本字段中.
我尝试将JFrame1的对象作为参数传递,但我对如何实现这一点并不清楚.任何帮助将受到高度赞赏.谢谢