Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2014, 15:38   #1
Aerowalk
Пользователь
 
Регистрация: 27.10.2008
Сообщений: 15
По умолчанию Трудности c JPanel

Привет, всем! Помогите, разобраться, что же я делаю не так с JPanel. Есть Ui.java
Код:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.InputMismatchException;
import java.util.Scanner;
 
import javax.swing.*;
 
public class Ui extends JFrame {  
    private final SpringLayout l = new SpringLayout();
    
    JPanel newPanel;
    
    public Ui() {
        super("vroomvroom");
        setLayout(l);
        setSize(560, 400);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
 
        JMenuBar menuBar = new JMenuBar();
        JMenu mainMenu = new JMenu("Menu");
 
        JMenuItem readTXTItem = new JMenuItem("Read TXT");
        mainMenu.add(readTXTItem);
        readTXTItem.addActionListener(new ActionListener() {           
            public void actionPerformed(ActionEvent e) {
                addData();           
            }           
        });
 
        mainMenu.addSeparator();
        
        menuBar.add(mainMenu);                 
        setJMenuBar(menuBar);
    }
   
    public final void addData() {
    
        newPanel = new Engine();                
        newPanel.setPreferredSize(new Dimension(500,300)); 
        add(newPanel);
        l.putConstraint(SpringLayout.WEST, newPanel, 20, SpringLayout.WEST, this);
        l.putConstraint(SpringLayout.NORTH, newPanel, 20, SpringLayout.NORTH, this);
 
 
 
        newPanel.print();        //          почему не отображает JLabel       ???????????????????????????????
                                   //          add(newPanel); после также не дает результата
 
 
 
        newPanel.updateUI();
    }
      
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Ui().setVisible(true);
            }
        });    
    }
}
и Engine.java
Код:
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
 
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class Engine extends JPanel{
    @Override 
    public void paintComponent(Graphics g) {
        super.paintComponent(g);             
        Graphics2D gr2d = (Graphics2D) g;
    }
    
    
    public Engine() {}
    
    public void print() { 
        JLabel jlb = new JLabel("key");
        add(jlb);
        System.out.print('test');
    }
 
}
Мне хотелось бы, чтобы надписи JLabel появлялись по желанию, т.е. вызвав print(), чтобы затем, если что, я мог очистить панель с removeAll(). PaintComponent() - не подходит, т.к. он отрисовывается единожды при создании объекта, а если понадобится походу добавлять на панель надписи? Можно ли так вообще?
Aerowalk вне форума Ответить с цитированием
Старый 20.09.2014, 21:30   #2
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Видимо я не полностью понял что вы хотите, но если убрать явные синтаксические ошибки:
JPanel newPanel; -> Engine newPanel;
System.out.print('test'); -> System.out.print("test");

то при нажатии на пункт меню "Read TXT" появляется надпись "key".
BleStaR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Jpanel и GridBaglayout azart Общие вопросы по Java, Java SE, Kotlin 1 06.03.2013 18:55
Размеры JPanel yazZ3va Общие вопросы по Java, Java SE, Kotlin 1 11.12.2012 14:11
JPanel grimm_jow Общие вопросы по Java, Java SE, Kotlin 6 30.11.2010 18:59
JPanel объясните Sasha9132 Общие вопросы по Java, Java SE, Kotlin 0 29.11.2010 20:41
Jpanel в JscrollPane Jakethefish Общие вопросы по Java, Java SE, Kotlin 0 15.11.2010 14:25