来自Java背景我习惯于处理动作虽然我不确定为什么该方法需要返回布尔值并且不完全理解网站上给出的解释:如果回调消耗了长按,则为true,false除此以外.
我知道,一旦最终变量赋值给它,就无法更改.但是我对此有几个问题:
当我有一个字段,static final JButton button;在类外面说,然后在main方法中,尝试为它赋值button = new JButton("OK");,我收到错误告诉我删除最终修饰符?但是,由于原始button变量尚未引用对象,因此我可以将其分配一次?
其次,如果我完全删除了引用,button所以我只static final JButton button;在课外,我的IDE声称"空白的最终字段按钮可能尚未初始化." 这是否意味着必须初始化所有最终字段?如果是这样,他们必须在那里初始化然后我似乎无法在以后初始化它.
另外,愚蠢的问题,但我最初的假设是,当最终变量被引用到实例或数据类型时,它不能被分配给其他任何东西是正确的,对吗?
此代码不完整,但用于说明我的观点:
public class FinalVarTester {
static final JButton button;
public static void main(String[] args) {
JFrame frame = new JFrame();
Container container = frame.getContentPane();
container.setLayout(new BorderLayout());
button = new JButton("OK");
container.add(button, BorderLayout.SOUTH);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个数据库应用程序,我的程序正常工作,我已经理解了我一直关注的大部分教程.但是,有一方面我不清楚.
有一个内部类的MyDBHelper扩展了SQLiteOpenHelper.外部变量包括名为d的SQLiteDatabase.MyDBHelper的代码是:
private static class MyDBHelper extends SQLiteOpenHelper {
MyDBHelper(Context c) {
super(c, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVers, int newVers) {
Log.w(TAG, "Upgrading database from version " + oldVers + " to " + newVers + ", which will destroy all old data.");
db.execSQL("DROP TABLE IF EXISTS GM");
onCreate(db);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这是如何实际创建初始数据库的.它出现在onCreate()方法中,但据我所知,从未调用过.我知道它是在第一次创建数据库时调用的,但在哪里?而且,它如何通过SQLiteDatabase数据库?我还没有将任何数据库传递给该方法.我的SQLiteDatabase db变量如何从 …
我正在尝试为包含月数的字段构建正则表达式,当然,这只需要数字1-12.然而,对正则表达式来说,这对我来说有点新鲜,我只需要检查一下我是对的.它似乎工作正常.虽然我在假设这里的范围是正确的1-12允许这个范围内的任何数字,但我只是问,因为我以前只见过0-9.
[1-12]{1,2}
Run Code Online (Sandbox Code Playgroud) 所以我知道下面的方法会导致两个变量都指向同一个对象,但如果我确实想找到最简单的方法让ArrayList s2与s1完全相同,我该怎么办呢?
public static void main(String[] args) {
ArrayList<String> s1 = new ArrayList<String>();
for (int i = 1; i <= 3; i++) {
s1.add(""+i);
}
ArrayList<String> s2 = s1;
}
Run Code Online (Sandbox Code Playgroud) 所以我正在制作一个应用程序,我想跟踪添加到屏幕上的形状.到目前为止,我有以下代码,但是当添加一个圆时,它无法移动/更改.理想情况下,我想要像shift一样移动它/突出显示它.
我也想知道如何制作它以便你可以将一条线从一个圆圈拖到另一个圆圈.我不知道我是否在这里使用错误的工具,但任何帮助将不胜感激.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MappingApp extends JFrame implements MouseListener {
private int x=50; // leftmost pixel in circle has this x-coordinate
private int y=50; // topmost pixel in circle has this y-coordinate
public MappingApp() {
setSize(800,800);
setLocation(100,100);
addMouseListener(this);
setVisible(true);
}
// paint is called automatically when program begins, when window is
// refreshed and when repaint() is invoked
public void paint(Graphics g) {
g.setColor(Color.yellow);
g.fillOval(x,y,100,100);
}
// The next 4 methods must be defined, …Run Code Online (Sandbox Code Playgroud) 我的理解是,当将组件添加到BorderLayout时,它们会占用隔间的整个大小.将panel1添加到contentPane的北部时,似乎就是这种情况.但是,当我将panel2放在panel3的北面,并将panel3添加到contentPane的中心时,panel2似乎占用了最小的空间量.
造成这些尺寸差异的原因是什么?
public class BorderLayoutTesting {
public static void main (String[] args) {
JFrame frame = new JFrame();
JPanel panel1 = new JPanel();
panel1.setLayout(new BorderLayout());
panel1.add(new JLabel("name:"), BorderLayout.WEST);
panel1.add(new JTextField(), BorderLayout.CENTER);
JPanel panel2 = new JPanel();
panel2.setBorder(BorderFactory.createLineBorder(Color.black));
panel2.setLayout(new BorderLayout());
panel2.add(new JLabel("your full address with postcode:"), BorderLayout.WEST);
panel2.add(new JTextField(), BorderLayout.CENTER);
Container container = frame.getContentPane();
container.setLayout(new BorderLayout());
container.add(panel1, BorderLayout.NORTH);
JPanel panel3 = new JPanel();
panel3.add(panel2, BorderLayout.NORTH);
container.add(panel3, BorderLayout.CENTER);
panel3.setBorder(BorderFactory.createLineBorder(Color.black));
frame.setSize(500,500);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud) 我读过几篇相互矛盾的在线文章.我认为这将是匿名内部类的一个例子:
button.addActionListener(new ActionListener() {
public void actionPerfored(ActionEvent e) {
// do something.
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我也看到这被描述为一个匿名的内部类:
ActionListener myListener = new ActionListener() {
public void actionPerformed(ActionEvent event) {
// do something.
}
};
button.addActionListener(myListener);
Run Code Online (Sandbox Code Playgroud)
哪个是哪个,为什么?谢谢!
我有一个字符数组,对于我所拥有的程序类型,它必须通过设计检查边界上的索引.我以为我会解决这个问题,但显然不是.那么有没有办法检查索引是否超出范围?
java arrays primitive primitive-types indexoutofboundsexception
我有一个名为'info'的div,我想在点击一个按钮时显示它.
<button>Toggle</button>
<div id="toggle">
Test
</div>
Run Code Online (Sandbox Code Playgroud)
基本上我想用jQuery用滑动功能来揭示它,但我不知道如何.我可以在网上找到大部分代码并看到片段,但我实际上并不知道在哪里放置大部分代码,有人可以告诉我我需要将相关的代码(从头开始)放到哪里和哪里得到这个工作?谢谢.