所以我有以下代码:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextPane;
@SuppressWarnings("serial")
public class Window extends JPanel implements ActionListener {
public static JTextPane text = new JTextPane();
public static BorderLayout layout = new BorderLayout();
public static JButton debug = new JButton("Debug");
public static boolean isDebugPressed = false;
public static JFrame frame = new JFrame();
public Window(){
debug.addActionListener(this);
this.setLayout(layout);
this.add(debug,BorderLayout.NORTH);
this.add(text,BorderLayout.CENTER);
}
public static void main(String[] args){
Window window = new Window();
frame.setLayout(layout);
frame.setSize(new Dimension(600,600));
frame.setTitle("QuickScript Compiler");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.add(window);
debug.setActionCommand("debug");
if (isDebugPressed){
JOptionPane.showMessageDialog(frame, "Output: " + text.getText().toString() , "Debugging", JOptionPane.PLAIN_MESSAGE);
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("debug")){
isDebugPressed = true;
System.out.println("true");
}
}
当我按下调试按钮时,会弹出一个框,显示我在文本窗格内输入的内容,但没有显示任何内容。我该如何解决?我有一种感觉,我可能错过了一些非常重要的东西,但我无法弄清楚它是什么。感谢任何可以提供帮助的人:D
答案 0 :(得分:3)
//if (isDebugPressed){
JOptionPane.showMessageDialog(frame, "Output: " + text.getText().toString() , "Debugging", JOptionPane.PLAIN_MESSAGE);
需要将显示选项窗格的代码添加到ActionListener。
创建GUI时变量isDebugPressed为false,并且该语句永远不会再次执行。
此外,因为ActionListener只被添加到Debug按钮,所以您不需要设置action命令并检查ActionListener中的命令。源按钮将始终是“调试”按钮,因此您只需显示选项窗格。