Итак, я просто нашел форму JBrame Netbeans, указанную в онлайн-учебном пособии, чтобы помочь с макетом (в моем учебнике не упоминалось об этом в разделе GUI, по крайней мере, что я видел!) Поскольку у меня сложная время с макетом программы, над которой я работаю (я не могу заставить текстовую область себя вести и оставаться в центре окна, а не занимать все окно!) Я думал, что визуальная помощь может быть полезна, однако, как вы, возможно, догадались, у меня уже есть большой объем кода, погруженный в эту программу. Можно ли связать новую форму JFrame с существующим классом? Если да, то как мне это сделать? Я могу предоставить свой код, если вам это нужно, но мы говорим о 500 строках кода только в одном из трех основных классов.Можно ли добавить форму jframe в существующий класс?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package theproblem;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.TextArea;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
/**
*
* @author Heather
*/
public class TheProblem {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JFrame window2 = new JFrame();
TextArea battleLogging = new TextArea(3,10);
JScrollPane logScrollPane = new JScrollPane(battleLogging);
JLabel BattleLog = new JLabel();
JLabel p1HPLabel= new JLabel();
JLabel p2HPLabel= new JLabel();
String attack1ButtonContents = "Just an attack";
String attack2ButtonContents = "Just another attack";
JButton attack1=new JButton(attack1ButtonContents);
JButton attack2=new JButton(attack2ButtonContents);
window2.setLayout(new BorderLayout());
window2.setSize(400,400);
JPanel attackPanel = new JPanel();
attackPanel.add(attack1);
attackPanel.add(attack2);
// attack1 = new JButton(p1A1);
// attack2 = new JButton(p1A2);
// attack1.addActionListener(new Attack1());
// attack2.addActionListener(new Attack2());
//window2.add(attackPanel, BorderLayout.CENTER);
window2.add(battleLogging, BorderLayout.CENTER);
battleLogging.setEditable(false);
logScrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
logScrollPane.setPreferredSize(new Dimension(50, 50));
//battleLogging.setLineWrap(true);
//battleLogging.setWrapStyleWord(true);
window2.add(BattleLog, BorderLayout.NORTH);
window2.add(p1HPLabel, BorderLayout.WEST);
window2.add(p2HPLabel, BorderLayout.EAST);
window2.setVisible(true);
window2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Пытаясь использовать создатель gui с существующим кодом, будет больше проблем, чем это стоит, ИМХО. Почему бы вам просто не написать код самостоятельно? –
Сделайте [SSCCE] (http://sscce.org), демонстрируя свою проблему. – nachokk
Я сделал, а затем попытался добавить JTextArea, чтобы содержать журнал видимых событий, видимых в окне, и он не остается в центре BorderLayout, который я указал. Он занимает все окно, где не видно ни одной кнопки, ни JLabel наверху –