powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Отдельно Panel, отдельно Frame
12 сообщений из 12, страница 1 из 1
Отдельно Panel, отдельно Frame
    #34385280
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, плз, возможно ли:
Cоздать как отдельный класс панель с компонентами(Допустим кнопкой), описать все обработчики, а затем использовать эту панель в разных фреймах?
Т.е. например:
есть панель PanelButton. на ней кнопка Button. по нажатию Button выводится в консоли
"Hello!"

отдельно есть окно(Frame) Frm1. У него есть свой ContentPane. и нам теперь нужно добавить туда эту панель PanelButton вместе с ее Button...

все это запустить и чтобы работало..реально?))

У меня пока не получилось. Кидать код нагенеренный в эклипсе не очень охота, там много текста.
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34385283
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это все применительно к Swing
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34385310
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос у тебя вроде как про класс начинается, а потом вроде как про инстанс. Использовать инстанс на разных фреймах, скорее всего не получится. А создать класс который будет описывать логику одной панели ен проблема. Потом размесить 2 экземпляра в разных фреймах и все должно работать.
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34385329
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведите пример кода если нетрудно)
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34385333
Anarion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а что в этом сложного?

Код: plaintext
1.
2.
ButtonPanel buttons= new  ButtonPanel();
 this .getContentPane().add(buttons);
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386326
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда я так делаю
PanelButton b=new PanelButton();
jContentPane.add(b,BorderLayout.EAST);

Button, расположенный на панели PanelButton не показывается.
Ошибки компиляции или выполнения не происходит, но такое ощущение, что панель просто не отображается.
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386375
Anarion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи весь код.
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386382
antonkb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй при размещении задать setLayout(null); и все панели размести setBounds(0,0,10,20) типа того. И увидишь, что рисуется, а что нет.
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386389
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это панель с кнопкой.

package tst;

import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;

import javax.swing.JFrame;
import java.awt.GridBagLayout;
import java.awt.Dimension;
import javax.swing.JCheckBox;
import java.awt.GridBagConstraints;
import javax.swing.JButton;

public class F extends JFrame {

public Bop2 bop2=new Bop2(); // @jve:decl-index=0:visual-constraint="60,221"

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JPanel jPanel = null;

private JButton jButton = null;

public F() throws HeadlessException {
// TODO Auto-generated constructor stub
super();
initialize();
}

public F(GraphicsConfiguration gc) {
super(gc);
// TODO Auto-generated constructor stub
initialize();
}

public F(String title) throws HeadlessException {
super(title);
// TODO Auto-generated constructor stub
initialize();
}

public F(String title, GraphicsConfiguration gc) {
super(title, gc);
// TODO Auto-generated constructor stub
initialize();
}

/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
try {
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 0; // Generated
gridBagConstraints1.gridy = 0; // Generated
jPanel = new JPanel();
jPanel.setLayout(new GridBagLayout()); // Generated
jPanel.setPreferredSize(new Dimension(30, 30)); // Generated
jPanel.add(getJButton(), gridBagConstraints1); // Generated
} catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jPanel;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
try {
jButton = new JButton();
jButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
bop2.setVisible(true);
JOptionPane.showMessageDialog(null, "bop2.getAlignmentX()="+bop2.getAlignmentX());
if (bop2.isVisible()) JOptionPane.showMessageDialog(null, "Visible=true");
Dimension d=new Dimension();
d=bop2.getSize();
JOptionPane.showMessageDialog(null,"height="+bop2.getSize().height+" width="+bop2.getSize().width);
bop2.getSize().setSize(100,100);
//JOptionPane.showMessageDialog(null,"height="+bop2.getSize().height+" width="+bop2.getSize().width);
System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mouseClicked()
}
});
} catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jButton;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
F thisClass = new F();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanel(), BorderLayout.WEST); // Generated
// Bop2 bop2=new Bop2();
jContentPane.add(bop2,BorderLayout.EAST);


}
return jContentPane;
}

}
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386395
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу! предущее не панель а окно которое отображает панель.
сама панель вот:

package tst;

import java.awt.GridBagLayout;
import java.awt.LayoutManager;

import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Rectangle;

public class Bop2 extends JPanel {

private static final long serialVersionUID = 1L;
private JButton jButton = null;

public Bop2() {
// TODO Auto-generated constructor stub
super();
initialize();
}

public Bop2(LayoutManager layout) {
super(layout);
// TODO Auto-generated constructor stub
initialize();
}

public Bop2(boolean isDoubleBuffered) {
super(isDoubleBuffered);
// TODO Auto-generated constructor stub
initialize();
}

public Bop2(LayoutManager layout, boolean isDoubleBuffered) {
super(layout, isDoubleBuffered);
// TODO Auto-generated constructor stub
initialize();
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
try {
jButton = new JButton();
jButton.setBounds(new Rectangle(107, 67, 94, 45)); // Generated
jButton.setText("Button"); // Generated
} catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jButton;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setLayout(null);
this.add(getJButton(), null); // Generated
System.out.println("Hello!");
this.setVisible(true);
}

}
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386424
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так правильно получать размер панели?
bop2.getSize().height
bop2.getSize().width

почему то эти параметры равны 174x1..
...
Рейтинг: 0 / 0
Отдельно Panel, отдельно Frame
    #34386516
Кореец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все. спасибо!
все получилось. она дейсвительно не отображалась из за расположения компоненты.

при таких координатах увидел кнопку.
bop2.setBounds(new Rectangle(55, 20, 230, 173));

теперь попробую c режимом FlowLayout разрулить..
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Отдельно Panel, отдельно Frame
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]