相关疑难解决方法(0)

停止Swing中事件的默认行为

我在通过单击发送按钮调用的方法中有以下代码,或者在一段代码中按消息文本字段中的Enter键.

// In class ChatWindow
private void messageTextAreaKeyPressed(java.awt.event.KeyEvent evt) { // Event handler created by Netbeans GUI designer to call this method.           
    if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
        sendMessage();
    }
}   
public void sendMessage() {
    String currentMessage = messageTextArea.getText();
    addMessage("You", currentMessage);
    app.sendMessage(currentMessage, 1);
    messageTextArea.setText("");
}
Run Code Online (Sandbox Code Playgroud)

最后一段代码使文本区域空白.但是,在按Enter按钮发送消息后,文本框包含换行符,而不是为空.

我的猜测是,在我的事件处理程序运行之后,然后添加了换行符.如何停止添加换行符?

java user-interface swing event-handling

5
推荐指数
2
解决办法
4157
查看次数

如何让两个JPanels听同一个事件?

我有一个JFrame和,里面JFrame有两个JPanels.当我按下一个键时,他们都必须听这个关键事件并采取行动.我想拍摄所有的键盘事件,并将它们传递给两个JPanel.你知道怎么做吗?

编辑:因为他们必须做不同的事情,我需要两个不同的听众,抱歉没有具体.

Edit2:我制作了一个简单的代码来向您展示问题.当我按下向上键时,JPanel显示的两个必须改变它们的字符串; 在这段代码中,其中只有一个实际上有所反应

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.KeyStroke;

/**
*
 * @author antonioruffolo
 */
public class TwoPanelsTest extends JFrame {

public TwoPanelsTest() {

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setResizable(false);
    setSize(800, 600);

    PanelTest panelTest1= new PanelTest();
    PanelTest panelTest2= new PanelTest();

    GridBagLayout layout= new GridBagLayout();
    this.setLayout(layout);

    GridBagConstraints c = new GridBagConstraints();

    c.ipadx …
Run Code Online (Sandbox Code Playgroud)

java swing

3
推荐指数
1
解决办法
2110
查看次数

标签 统计

java ×2

swing ×2

event-handling ×1

user-interface ×1