Java 除锥齿轮架工作不正常
我正在尝试用JButtons重新创建默认的最小化、恢复和关闭。到目前为止,我的所有代码都按预期工作。当我为我的最小化添加了一个按钮和一个actionlistener时,问题出现了: 我有一个按钮,可以最小化我的画面,但是,当我把它去锥化时,事情会变得很奇怪。具体来说,最小化按钮仍然被永久按下(视觉上),我的滚动窗格开始出现故障,一个将文本从一个字段移动到另一个字段的按钮停止工作,而最小化和关闭Jbuttons仍然工作 我尝试过在用WindowsListener进行除冰后重新喷漆和/或包装,但没有效果。我还尝试了setExtendedState(),它没有做任何不同的事情 我在jframe的边框布局中有3个JPanel 以下是我与该问题相关的一些代码:Java 除锥齿轮架工作不正常,java,swing,Java,Swing,我正在尝试用JButtons重新创建默认的最小化、恢复和关闭。到目前为止,我的所有代码都按预期工作。当我为我的最小化添加了一个按钮和一个actionlistener时,问题出现了: 我有一个按钮,可以最小化我的画面,但是,当我把它去锥化时,事情会变得很奇怪。具体来说,最小化按钮仍然被永久按下(视觉上),我的滚动窗格开始出现故障,一个将文本从一个字段移动到另一个字段的按钮停止工作,而最小化和关闭Jbuttons仍然工作 我尝试过在用WindowsListener进行除冰后重新喷漆和/或包装,但没有
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);
}
}
这是我第一次问问题。张贴一篇演示问题的文章。我们无法访问您的图像,因此对于
MCVE
,您只需使用按钮上的文本即可。创建~MCVE`时,您可能会发现自己的问题。I您可以尝试使用setExtendedState
而不是setState
,并通过检查getExtendedState
检查状态是否已更新,以包括我的MCVE。减去导入语句。我运行了它,也遇到了同样的问题。setExtendedState
workfineformeyou示例适用于(MacOS),您运行的是什么操作系统?