我正在使用Eclipse.问题是如果分配的内存少于512MB,我的应用程序崩溃.现在还有在开始大量内存穷举处理之前检查程序的可用内存吗?例如,我知道我们可以检查可用的JVM堆大小:
long heapSize = Runtime.getRuntime().totalMemory();
System.out.println("Heap Size = " + heapSize);
Run Code Online (Sandbox Code Playgroud)
问题是,这给出了JVM堆大小.即使增加它也无法使用Eclipse.在Eclipse中,如果我更改VM参数,那么它可以工作.但是,上述声明的打印输出始终相同.有没有命令我可以准确地知道我为特定应用程序分配了多少内存?
我想将三个表合并在一起,如下所示:

基本上我想要包括所有三个表T1,T2和T3中的项目,并将它们合并,如结果表中所示.我试过这样的事情:
SELECT T1.user, T2.tid, T2.name, T3.type, T1.mid
FROM T1
LEFT JOIN T2 ON T1.mid = T2.mid
LEFT JOIN T3 ON T2.tid = T3.tid
GROUP BY T1.user;
Run Code Online (Sandbox Code Playgroud)
但它似乎没有奏效.它确实显示结果,但只显示唯一值.在结果if user中johny,它只显示第一个值而忽略第二个值,尽管它应该在结果表中.
有什么我想念的吗?
所以,如果我有一个JMenu&JMenuBar定义如下:
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenu1.setText("About");
jMenuBar1.add(jMenu1);
// Finally
setJMenuBar(jMenuBar1);
Run Code Online (Sandbox Code Playgroud)
并且菜单"关于"菜单与菜单栏的最左侧对齐.无论如何,我可以在菜单栏的最右侧对齐此菜单吗?
是否可以获取正在执行的文件名.例如,如果我正在运行Jar文件,并且我想在内部添加可以检测文件名的代码功能,以便在重命名此jar时,代码应该能够检测到它.
是否有可能在不扫描当前目录中的文件的情况下执行此操作?
因此,如果有一个链接到网页的css文件,例如:
<link href="style.css" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)
我想读取某个属性,例如div有className ='layout',我想用JavaScript读取这个属性的详细信息,我该怎么做?
我已经搜索了很多但几乎没有运气,请建议.
我有一个Java Swing项目,可以在Windows和Ubuntu上正常工作.我没有任何Mac,所以我无法测试它; 我使用Nimbus主题作为该项目的标准.
现在,最近我的朋友在Eclipse和导出的jar中测试了同一个项目,它提供的错误并没有引用我所做的任何特定Java类.
它确实显示了GUI,但有时它会粘住,或者有时菜单丢失.
以下是启动GUI时显示的错误版本:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.apple.laf.AquaMenuPainter.paintMenuBarBackground(AquaMenuPainter.java:123)
at com.apple.laf.AquaMenuUI.paintBackground(AquaMenuUI.java:57)
at com.apple.laf.AquaMenuPainter.paintMenuItem(AquaMenuPainter.java:160)
at com.apple.laf.AquaMenuUI.paintMenuItem(AquaMenuUI.java:35)
at javax.swing.plaf.basic.BasicMenuItemUI.paint(BasicMenuItemUI.java:452)
at javax.swing.plaf.basic.BasicMenuItemUI.update(BasicMenuItemUI.java:448)
at javax.swing.JComponent.paintComponent(JComponent.java:752)
at javax.swing.JComponent.paint(JComponent.java:1029)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:34)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
Run Code Online (Sandbox Code Playgroud)
你能告诉我可能是什么问题,还是我应该在Mac上使用任何具体的外观主题?Mac上是否不支持Nimbus,如果是,那么我应该使用什么?
是否可以在Swing中将Button叠加在Label上?
例如,如果有一个带有图像的JLabel而没有文本,我想在我的JLabel上覆盖我的按钮.标签定义如下:
myLabel = new javax.swing.JLabel(new ImageIcon( myPicture ));
Run Code Online (Sandbox Code Playgroud)
如果没有,那么任何想法我怎么能意识到这一点,谢谢.
编辑:其实我读到有关添加JPanel到JLabel,当我添加一个面板按钮布局,它编译得很好,但没有任何可见,只是JLabel与图像
更新:正如@ paranoid-android所建议的那样,我已经解决了我的问题.然而,我仍然必须知道如何自定义覆盖在JLabel顶部的组件的位置,因为我没有太多的控制(可能因为通常我使用netbeans绘制布局,这将需要硬编码).
像这样的东西有效:
ImagePanel(Image image, int id) {
this.image = image;
this.tile = false;
JButton backButton = new JButton();
JButton nextButton = new JButton();
backButton.setText(" BACK ");
nextButton.setText(" NEXT ");
add(backButton);
add(nextButton);
};
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
Run Code Online (Sandbox Code Playgroud) 我对序列化没有多少经验.在尝试序列化下面类的一个简单对象时,我No JavaBean properties found exception从YAML库中得到了这个.
这是班级:
public class MyClass {
String value;
public MyClass(String args) {
value = args;
}
public String getValue(){
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我使用SnakeYAMAL进行序列化的方法:
import java.util.HashMap;
import java.util.Map;
import org.yaml.snakeyaml.Yaml;
public class Test {
public static void main(String[] args) {
MyClass obj = new MyClass("this is my data");
Map<String, Object> data = new HashMap<String, Object>();
data.put("MyClass", obj);
Yaml yaml = new Yaml();
String output = yaml.dump(data);
System.out.println(output);
}
}
Run Code Online (Sandbox Code Playgroud)
并在执行时抛出此异常:
Exception in thread "main" …Run Code Online (Sandbox Code Playgroud) 如果我已定义JMenu并JMenuBar喜欢这样:
private JMenuBar jMenuBar;
private JMenu jMenu1;
jMenuBar = new JMenuBar();
jMenu1 = new JMenu();
jMenu1.setText("ABOUT");
//and here add a MenuListener so that i can detect when a menu is clicked:
jMenu1.addMenuListener(this);
jMenuBar.add(jMenu1);
setJMenuBar(jMenuBar);
//and here i implement the menulisteners
public void menuSelected(MenuEvent e) {
//my logic here
}
public void menuDeselected(MenuEvent e) {}
public void menuCanceled(MenuEvent e) {}
Run Code Online (Sandbox Code Playgroud)
现在它工作正常.但问题是,如果我有一个以上的菜单,我怎么能区分这两个菜单.就像菜单监听器一样,我怎么知道click1来自menu1或其他菜单2?
我的意思是,如果我有另一个菜单,我也为这个菜单添加菜单监听器:
jMenu2.addMenuListener(this);
Run Code Online (Sandbox Code Playgroud)
然后我无法区分点击来自哪个菜单.我怎样才能做到这一点?
在Eclipse中,当我创建新的Java Project时,我会看到以下选项:
现在我想知道,什么是最安全的选项,考虑到我导出jar文件时,任何用户都可以使用它.如果选择显示的选项,这是否意味着如果某人有JRE 1.6,他将无法运行该jar文件,或者它是否向后兼容?
因此,我的项目没有特定的1.7依赖项.