Хорошо, попытался подвести итог моей проблеме. Я пытаюсь добавить jpanel из другого класса. В этом классе у меня есть метод печати, где я получаю вход из файла и добавляю его в JTextArea, который является вторым блоком кода. Я хочу добавить эту панель в рамку внутри класса GUI. Текущий код правильно выводит кнопки в этом первом блоке. Но щелчки только немного расширяют окно и все черное. Кнопки остаются там, но накладываются на черное окно. = (добавить панель в кадр из другого класса?
package GamePackage;
import java.*;
import javax.swing.*
public class CopyOfGUI extends JFrame {
static String config = null;
static JFrame frame;
static JPanel panel;
private static final long serialVersionUID = 1L;
public CopyOfGUI() {
frame = new JFrame("Sheep City");
panel = new JPanel();
JButton options = new JButton("OPTIONS");
JButton start = new JButton ("START");
JButton controls = new JButton ("CONTROLS");
panel.add(options);
panel.add(start);
panel.add(controls);
frame.add(panel);
options.addActionListener(new actionReadConfig(config));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String[] args) {
if (args.length > 0)
{config = args[0];}
CopyOfGUI gui = new CopyOfGUI();
}
//Here is where the options button loads the read in argument for the config file
class actionReadConfig implements ActionListener {
String config = null;
public actionReadConfig(String config) {
this.config = config;
}
public void actionPerformed(ActionEvent e) {
try {
GameBoard.loadConfig(this.config);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
Вот код, где им пытаются добавить текст из файла читать в текстовой области, добавить его на панель, и вернуться к исходному кадру.
public static int print(ConfigurationManager cm) {
//code gere
JPanel configPanel = new JPanel(new BorderLayout());
configPanel.setBorder(BorderFactory.createTitledBorder("Configuration Manager"));
JTextArea area = new JTextArea();
area.append("Before we get started lets setup our configurations shall we?\n");
area.append("These are the default configurations.\n");
area.append("*************************\n");
//for loop here {
//area.append output
//}
area.append("*************************\n");
area.append("Would you like to change any of these values? (yes/no)\n");
area.setEditable(false);
configPanel.add(area, BorderLayout.SOUTH); //Idk if any of this is right
CopyOfGUI.frame.add(configPanel);
CopyOfGUI.frame.remove(CopyOfGUI.panel);
CopyOfGUI.frame.pack();
CopyOfGUI.frame.setVisible(true);
CopyOfGUI.frame.repaint();
Больше коде впоследствии, но мне нужна предыдущая часть работы, прежде чем я беспокоиться об остальном. Thx заранее.
Просто наблюдение - это довольно трудно для любого, чтобы помочь вам, когда вы пишете Су много, и ваш код еще не завершен (например, кто вызывает метод печати?). Постарайтесь быть краткими, уменьшите проблему до минимума и предоставите некоторый компилируемый код. См. Http://sscce.org/ – aditsu
@aditsu спасибо Я попытался подвести итог, но я думаю, что это так коротко, как я могу сделать код – waaffles