我写了个记事本,里面有个更改字体的功能,但是我每次通过textField.setFont()改了字体后,文本框的字体是变了,可是菜单栏却点下去没反应了(连菜单条目都不出来),这是为什么

解决方案 »

  1.   


    不知道为什么,我给这个menuBar.UpdateUI()了一下菜单栏又有响应了,我想知道原因
    我把记事本做好了,发到下载区,无偿下载,希望大神帮我看看原因所在
    http://download.csdn.net/detail/a942980741/4360889
    具体位置是在window.java的523行(用eclipse写的),你试试把这个menuBar.UpdateUI去掉,每当你在程序里改变字体后,menuebar就没反应了。
      

  2.   

    .jar文件的文件名请改成英文,否则不能运行
      

  3.   


    我的版本较低,
    java version "1.6.0_25"稍稍改了下FontSelect.java中的的兼容性问题
    JList<String>
    ->
    JListtextFieldStyle.setText(listStyle.getSelectedValue());
    ->
    textFieldStyle.setText(listStyle.getSelectedValue()3toString());
    测试没发现此问题。
      

  4.   

    没有LZ说的这个问题,迷惑中。我对swing认识也不浅。更新组件推荐使用menuBar.repaint();
      

  5.   

    请问repaint和updateUI区别是什么
      

  6.   

    没错,我也重新测试了一下,确实没有问题,很可能跟电脑当时状态有关,怪了,白让大家忙活一场,真不好意思。
    不过请大神解释下updateUI和repaint的区别和具体什么时候能用到
      

  7.   

    updateUI()从它的名字就看看出来,它面向的对象是“操作相关的所有组件”,把相关的资源都重新初始化一遍。
    repaint只是起到一个重绘的作用。
    两个可以共用的优化,更新前先把组件.removeAll().释放资源。不然很可能引起内存溢出。swing的缺陷就是得把握内存溢出。加载几张图片都能明显看出资源的占用。有点偏题了。