Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема к кнопкой, Некорректно отображается кнопка 
V
    Опции темы
brave
Дата 14.9.2010, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 7.3.2010

Репутация: нет
Всего: нет



Всем привет, почему-то не отображается кнопка во фрейме, хотя ексепшн работает нормально и всплывающее меню тоже. Может кто подскажет, вот код:

Код

import javax.swing.*;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
import java.awt.*;

public class ExceptionsTest3 {

    
    public static void main(String[] args) {
        
        EventQueue.invokeLater(new Runnable(){
         
         public void run()
         {
             MyFrame frame = new MyFrame();
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             frame.setVisible(true);
         }
        });
    }

}

class MyFrame extends JFrame
{
    
public MyFrame()
  {
    
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    setTitle("Testing exceptions...");
    setLocationByPlatform(true);
    //JButton yellowButton = new JButton("Yellow");
   // JButton blueButton = new JButton("Blue");
   // JButton redButton = new JButton("Red");
    //JButton button = new JButton("Show text");
  
     
    buttonPanel = new JPanel();    
    
    Action yellowAction = new ColorAction("Yellow", Color.YELLOW);
    Action blueAction = new ColorAction("Blue", Color.BLUE);
    Action redAction = new ColorAction("Red", Color.RED);
    Action buttonAction = new ButtonAction("Show text");
    
    buttonPanel.add(new JButton(yellowAction));
    buttonPanel.add(new JButton(blueAction));
    buttonPanel.add(new JButton(redAction));
    
    buttonPanel.add(new JButton(buttonAction));
    
    add(buttonPanel);
    
    InputMap imap = buttonPanel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");
    imap.put(KeyStroke.getKeyStroke("ctrl B"), "panel.blue");
    imap.put(KeyStroke.getKeyStroke("ctrl R"), "panel.red");
    
    ActionMap amap = buttonPanel.getActionMap();
    amap.put("panel.yellow", yellowAction);
    amap.put("panel.blue", blueAction);
    amap.put("panel.red", redAction);
   
    
    //yellowButton.addActionListener(yellowAction);
    //blueButton.addActionListener(blueAction);
    //redButton.addActionListener(redAction);
  } 
public class ButtonAction extends AbstractAction
{
  public ButtonAction(String s)
  {
      
      putValue(Action.SHORT_DESCRIPTION, "Display text");
  }    
  public void actionPerformed(ActionEvent event)
    {
        Graphics g = buttonPanel.getGraphics();
        Font f = new Font("Times New Roman", Font.BOLD, 18);
        g.setFont(f);
        g.drawString("The button has been clicked.",100,100);
        
    }


}

public class ColorAction extends AbstractAction
{

    public ColorAction(String name, Color c)
    {
        
        putValue(Action.NAME, name);
        putValue(Action.SHORT_DESCRIPTION, "Set panel color to "+name.toLowerCase());
        putValue("color", c);
    }
    public void actionPerformed(ActionEvent event)
    {
        
        Color с = (Color) getValue("color");
        buttonPanel.setBackground(с);
        buttonPanel.repaint();
    }
    
}

    private JPanel buttonPanel;
    public static int DEFAULT_WIDTH = 450;
    public static int DEFAULT_HEIGHT = 300;
}



Вот скриншот: http://ipicture.ru/Gallery/Viewfull/1179862.html

Заранее спасибо.
PM MAIL   Вверх
jk1
Дата 14.9.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Не увидел в коде ни Exception'ов, ни всплывающих меню. Вы точно тот кусок кода вставили?
Под "неотображаемостью" вы понимаете крошечный размер последней кнопки? Тогда замените
Код

  public ButtonAction(String s)
  {

      putValue(Action.SHORT_DESCRIPTION, "Display text");
  }

на
Код

  public ButtonAction(String s)
  {
      putValue(Action.NAME, "Display text");
      putValue(Action.SHORT_DESCRIPTION, "Display text");
  }

и кнопка волшебным образом станет нужного размера.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
brave
Дата 15.9.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 7.3.2010

Репутация: нет
Всего: нет



Сорри, скопировал одну из версий, но не совсем ту, что надо.

Фикс сработал - спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.