|
|
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Подскажите, плз, возможно ли: Cоздать как отдельный класс панель с компонентами(Допустим кнопкой), описать все обработчики, а затем использовать эту панель в разных фреймах? Т.е. например: есть панель PanelButton. на ней кнопка Button. по нажатию Button выводится в консоли "Hello!" отдельно есть окно(Frame) Frm1. У него есть свой ContentPane. и нам теперь нужно добавить туда эту панель PanelButton вместе с ее Button... все это запустить и чтобы работало..реально?)) У меня пока не получилось. Кидать код нагенеренный в эклипсе не очень охота, там много текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:34:00 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
это все применительно к Swing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:34:40 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Вопрос у тебя вроде как про класс начинается, а потом вроде как про инстанс. Использовать инстанс на разных фреймах, скорее всего не получится. А создать класс который будет описывать логику одной панели ен проблема. Потом размесить 2 экземпляра в разных фреймах и все должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:44:15 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
приведите пример кода если нетрудно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:50:17 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Ну а что в этом сложного? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:50:56 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Когда я так делаю PanelButton b=new PanelButton(); jContentPane.add(b,BorderLayout.EAST); Button, расположенный на панели PanelButton не показывается. Ошибки компиляции или выполнения не происходит, но такое ощущение, что панель просто не отображается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 10:55:07 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Покажи весь код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:06:14 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Попробуй при размещении задать setLayout(null); и все панели размести setBounds(0,0,10,20) типа того. И увидишь, что рисуется, а что нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:07:59 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Это панель с кнопкой. 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; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:08:52 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
тьфу! предущее не панель а окно которое отображает панель. сама панель вот: 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); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:10:02 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
так правильно получать размер панели? bop2.getSize().height bop2.getSize().width почему то эти параметры равны 174x1.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:17:04 |
|
||
|
Отдельно Panel, отдельно Frame
|
|||
|---|---|---|---|
|
#18+
Все. спасибо! все получилось. она дейсвительно не отображалась из за расположения компоненты. при таких координатах увидел кнопку. bop2.setBounds(new Rectangle(55, 20, 230, 173)); теперь попробую c режимом FlowLayout разрулить.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:41:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34386382&tid=2146407]: |
0ms |
get settings: |
21ms |
get forum list: |
30ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
48ms |
get topic data: |
21ms |
get forum data: |
5ms |
get page messages: |
99ms |
get tp. blocked users: |
3ms |
| others: | 338ms |
| total: | 579ms |

| 0 / 0 |
