我尝试了无数的教程并查看了无数的网站(包括堆栈溢出),但没有一个代码对我有用。所以我最后问了我自己的问题,我的代码出了什么问题?
1& childRecordFromChildIndex, DependencyProperty dp, FrameworkElementFactory templateRoot)
at System.Windows.StyleHelper.InvalidatePropertiesOnTemplateNode(DependencyObject container, FrameworkObject child, Int32 childIndex, FrugalStructList
}
答案 0 :(得分:3)
你正在创建两个JFrame,一个是类本身的对象,this
如果你愿意的话,你可以添加JButton,另一个是由变量显示和保持的f
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
console.log(sender.tab.id);
});
1}}。解决方案:不要这样做 - 只创建并显示一个 JFrame,然后添加按钮。
我强烈建议你几乎不要扩展JFrame。你通过让你的类扩展JFrame来强迫你创建和显示JFrame,而通常需要更多的灵活性。事实上,我冒昧地说,我创建的大部分Swing GUI代码和我见过的不扩展了JFrame,事实上你很少想做这个。更常见的是,您的GUI类将面向创建JPanels,然后可以将其放置到JFrames或JDialogs或JTabbedPanes中,或者在需要时通过CardLayouts交换。这将大大提高GUI编码的灵活性。
答案 1 :(得分:0)
Hooray我发现问题我只是错误的目录而且我显然没有接受过java的swing,并感谢评论中的所有帮助! (这是我的代码供参考) -
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
public class titlescreen extends JFrame {
private static final long serialVersionUID = 1L;
JPanel jp = new JPanel();
JButton jb = new JButton();
public titlescreen() throws IOException {
ImageIcon jbImage = new ImageIcon("/Users/Sammmy/Documents/workspace/Macrodom/src/button.jpg");
jb = new JButton(jbImage);
//keep everything working
setTitle("MacroDom");
setSize(5000, 5000);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(true);
jp.add(jb);
add(jp);
setVisible(true);
}
public static void main(String[] args) throws IOException {
new titlescreen();
}
}