Java setFont()问题

Java setFont()问题,java,swing,fonts,actionlistener,jtogglebutton,Java,Swing,Fonts,Actionlistener,Jtogglebutton,我有两个按钮来编辑文本中的字体。粗体按钮和斜体按钮,分开,它们工作良好,但不在一起。我怎样才能让我的纽扣一起工作呢?(粗体+斜体) 按下一个按钮设置字体时,会覆盖上一个字体,消除上一次按下按钮可能产生的任何效果。我自己,我会让两个ActionListeners(或ItemListeners)调用相同的方法,一个检查两个按钮的状态并将字体设置为与按钮值对应的字体 另外,根据我的评论,去掉Eclipse标记,而是在您的问题中添加一个Swing标记,这样就不会误导任何人。Eclipse只是作为IDE使

我有两个按钮来编辑文本中的字体。粗体按钮和斜体按钮,分开,它们工作良好,但不在一起。我怎样才能让我的纽扣一起工作呢?(粗体+斜体)


按下一个按钮设置字体时,会覆盖上一个字体,消除上一次按下按钮可能产生的任何效果。我自己,我会让两个ActionListeners(或ItemListeners)调用相同的方法,一个检查两个按钮的状态并将字体设置为与按钮值对应的字体

另外,根据我的评论,去掉Eclipse标记,而是在您的问题中添加一个Swing标记,这样就不会误导任何人。Eclipse只是作为IDE使用的工具,与您的问题无关

另外,您不应该设置组件的边界或使用空布局,而是希望使用适当的布局管理器


编辑
你问:


检查按钮状态的方法?你能详细说明一下吗

您已经知道如何使用
isSelected()
方法调用检查按钮的状态。当按下按钮时,与其只检查一个按钮,不如同时检查两个按钮。事实上,您可以为两个按钮提供相同的ActionListener:

ActionListener actionListener = new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    // check selected states of both button one and two and set font accordingly
    // you can use if (foo && bar) {...}
    // else if (foo) {...}
    // else if (bar) {...}
    // else {.. default...}
  }
};
button1.addActionListener(actionListener);
button2.addActionListener(actionListener);

检查按钮状态的方法?你能详细解释一下吗?明白了,我现在就试试。从问题标题中删除Java——它已经在你的标签中,并从标题中删除“Eclipse”,因为你的问题与Eclipse无关。
ActionListener actionListener = new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    // check selected states of both button one and two and set font accordingly
    // you can use if (foo && bar) {...}
    // else if (foo) {...}
    // else if (bar) {...}
    // else {.. default...}
  }
};
button1.addActionListener(actionListener);
button2.addActionListener(actionListener);