我正在尝试使用JButton重新创建默认的最小化,恢复和关闭。到目前为止,我所有的代码都按预期工作。当我为最小化添加一个按钮和一个actionlistener时出现了问题:
我有一个按钮可以最小化我的画面,但是,当我取消它的时候,事情会变得奇怪。具体来说,最小化按钮仍然是永久性地(视觉上)按下,我的滚动窗格开始窃听,一个按钮将文本从一个字段移动到另一个字段停止工作,然而我的最小化和关闭Jbuttons仍然有效。
我在使用windowStateListener去屏蔽后尝试重新绘制和/或打包,但它什么也没做。我也尝试过setExtendedState(),它没有做任何不同的事情。
我的jframe上的边框布局中有3个JPanel。
以下是我的一些与此问题相关的代码:
public class DataUI extends JFrame
{
JTextArea ta;
JButton b, b1, b2, b3;
JLabel l;
JMenuBar mb;
JMenu m1, m2, m3;
JPanel p1, p2, p3, p4, p5;
public DataUI()
{
setLayout(new BorderLayout());
p1 = new JPanel();
p1.setLayout(new GridLayout(3,1));
ta = new JTextArea(5,30);
p1.add(ta);
b = new JButton("Click here to put text into label");
p1.add(b);
l = new JLabel("");
p1.add(l);
p2 = new JPanel();
p2.setLayout(new GridLayout(1,3));
mb = new JMenuBar();
m1 = new JMenu("File");
mb.add(m1);
m2 = new JMenu("Edit");
JMenuItem copy = new JMenuItem(new DefaultEditorKit.CopyAction());
JMenuItem paste = new JMenuItem(new DefaultEditorKit.PasteAction());
m2.add(copy);
m2.add(paste);
mb.add(m2);
m3 = new JMenu("Help");
mb.add(m3);
p2.add(mb);
p3 = new JPanel();
p3.setLayout(new GridLayout(1,3));
b1 = new JButton("1");
p3.add(b1);
b2 = new JButton("2");
p3.add(b2);
b3 = new JButton("3");
p3.add(b3);
p2.add(p3);
add(p2,BorderLayout.NORTH);
add(p1,BorderLayout.EAST);
eventmin eh = new eventmin();
b1.addActionListener(eh);
event e = new event();
b.addActionListener(e);
}
public class eventmin implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
setState(JFrame.ICONIFIED);
}
}
public class event implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String text = ta.getText();
l.setText(text);
}
}
public static void main(String[] args)
{
DataUI gui = new DataUI();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.pack();
gui.setVisible(true);
}
}
这是我第一次提问。