可能是一个简单的解决方法,但是如果有人可以帮助我解决这个问题,那就太好了!
所以我有一种方法可以创建一个面板,并将其添加到中JFrame
。
问题是,我想继续使用略有不同的文本来调用该方法。
尽管确实可以回忆起,但它会在前一个实例之上创建一个新实例,而不是替换它。
}public void lyricPrinter(){
System.out.println(lyrics);
JTextArea textarea = new JTextArea(lyrics);
textarea.setBackground(Color.LIGHT_GRAY);
textarea.setEditable(false);
//JLabel textarea = new JLabel("not sure what this is...");
//textarea.setText("<html>"+lyrics+"</html>");
JScrollPane scroll = new JScrollPane (textarea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//GUI.frame.remove(scroll);
GUI.frame.add(scroll);
GUI.frame.setVisible(true);
每次运行该方法时,您都在创建一个新面板。为了防止这种情况,您只需要创建1个Panel Class实例,这样,当该方法运行时,将在同一面板上完成工作。
1-)将Panel实例定义为类的局部变量。2-)在“ lyricPrinter”方法中实例化面板3-)立即使用.removeAll()销毁面板组件
它应该工作。
举个例子;
JScrollPane scroll; //-->> somewhere in your class
public void lyricPrinter(){
System.out.println(lyrics);
JTextArea textarea = new JTextArea(lyrics);
textarea.setBackground(Color.LIGHT_GRAY);
textarea.setEditable(false);
//JLabel textarea = new JLabel("not sure what this is...");
//textarea.setText("<html>"+lyrics+"</html>");
**scroll = new JScrollPane (textarea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scroll.removeAll();**
//GUI.frame.remove(scroll);
GUI.frame.add(scroll);
GUI.frame.setVisible(true);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句