我试图将文本输出到Java中的资源文件,如下所示:
File file = new File(MLM.class.getClassLoader().getResource("mazes.txt").toString());
BufferedWriter out = new BufferedWriter(new FileWriter(file));
..
Run Code Online (Sandbox Code Playgroud)
但是因为没有创建资源文件,我得到一个空指针异常.如果不存在此错误,如何先创建空白资源文件?
我正在使用以下代码来捕捉人们按Ctrl+ Shift+ P作为我的chrome扩展程序:
window.addEventListener("keydown", function(event) {
var modifier = event.ctrlKey || event.metaKey;
if (modifier && event.shiftKey && event.keyCode == 80) {
//code goes here
}
});
Run Code Online (Sandbox Code Playgroud)
我希望这var modifier = event.ctrlKey || event.metaKey;条线意味着当Mac用户按下Cmd-Shift-P但没有Mac计算机来测试它时它会捕获.是这样吗?我的热键是否适用于Mac用户?
另外,当Cmd键下降时,keyCode是什么?它是17,与Ctrl相同吗?
我正在使用以下JavaScript跟踪鼠标移动:
var mouseX = 0;
var mouseY = 0;
document.onmousemove = function (e) {
mouseX = e.clientX;
mouseY = e.clientY;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果自页面加载后鼠标尚未移动,则mouseX和mouseY值都等于0.如何在加载页面时以及移动鼠标时获取鼠标值?
我正在使用以下代码在网页的顶层滑动图像,但它有点紧张,在图像上留下条纹垂直线,特别是当有多个嵌套元素的内容时.即使边框设置为零,也是如此.有关使用JS/CSS滑动图像的更平滑方法的任何建议吗?
border=4;
pps=250; // speed of glide (pixels per second)
skip=2; // e.g. if set to 10 will skip 9 in 10 pixels
refresh=3; // how often looks to see if move needed in milliseconds
elem = document.createElement("img");
elem.id = 'img_id';
elem.style.zIndex="2000";
elem.style.position="fixed";
elem.style.top=0;
elem.style.left=0;
elem.src='http://farm7.static.flickr.com/6095/6301314495_69e6d9eb5c_m.jpg';
elem.style.border=border+'px solid black';
elem.style.cursor='pointer';
document.body.insertBefore(elem,null);
pos_start = -250;
pos_current = pos_start;
pos_finish = 20000;
var timer = new Date().getTime();
move();
function move ()
{
var elapsed = new Date().getTime() - timer;
var pos_new = …Run Code Online (Sandbox Code Playgroud) 所以我有以下脚本:
<HTML><HEAD>
<SCRIPT>
function alert_minutes() {
var d=new Date();
alert ('Minutes past the hour: '+d.getMinutes());
}
</SCRIPT>
</HEAD><BODY>
<button onclick="alert_minutes()">Click Me</DIV>
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
我将它加载到Chrome中.我按下按钮告诉我
Minutes past the hour: 30
Run Code Online (Sandbox Code Playgroud)
哪个是对的.我将当地时间快了十分钟,再次按下它告诉我
Minutes past the hour: 40
Run Code Online (Sandbox Code Playgroud)
所以没问题.现在我将当地时间设置回正确的时间,第三次按下它仍然说
Minutes past the hour: 40
Run Code Online (Sandbox Code Playgroud)
我刷新页面,第四次按下它,但它仍然说
Minutes past the hour: 40
Run Code Online (Sandbox Code Playgroud)
我关闭所有Chrome窗口并重新打开浏览器,最后知道正确的时间.
因此,我总结说"如果不关闭并重新打开浏览器,Chrome就无法处理当地时间倒退,只能转发".使用与Firefox相同的脚本不是这种情况.有人知道这个bug的解决方法吗?我在Win XP上使用Chrome 16.
我创建了一个Chrome扩展程序,它只使用热键[Alt] + [0 ... 9]来发现facebook使用相同的热键.有没有可能我的扩展可能会禁用Facebook的热键,以便单独开火?我很确定我已经确定了facebook用于实现[Alt] + [0 ... 9]个热键的代码:
document.documentElement.onkeydown=function(a){a=a||window.event;var b=a.target||a.srcElement;var c=a.keyCode==13&&!a.altKey&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&CSS.hasClass...
Run Code Online (Sandbox Code Playgroud)
这是在从根文档的头部调用的脚本中.我已尝试以下方法禁用它们:
//contents script:
$().ready( function() {
document.documentElement.onkeydown = '';
});
Run Code Online (Sandbox Code Playgroud)
乃至
$().ready( function() {
document.documentElement.onkeydown = function(e){};
});
Run Code Online (Sandbox Code Playgroud)
我进一步猜测这些尝试都不起作用的原因是因为虽然Chrome扩展内容脚本与运行它们的任何网页共享一个DOM,但它们可能不共享编码环境?任何见解将不胜感激!
我可以看到在Java中有一种方法可以接受任意数量的指定类型的参数:http: //www.java-tips.org/java-se-tips/java.lang/how-to-传递非指定数的论点对am.html
但有没有办法使一个方法接受任何类型的任何数量的参数?
这是我第一次尝试使用BufferStrategy,我真的很感激一些提示.
1)为什么在下面的代码中,getSize()在调整窗口大小之前返回0的尺寸?如何立即检测窗口的大小?
2)为什么什么时候getSize()返回的东西不是窗户的全尺寸?IE为什么底部和右边都有一条黑色条带?
3)调整窗口大小时有没有办法摆脱闪烁?
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BSTest extends JFrame {
BufferStrategy bs;
DrawPanel panel = new DrawPanel();
public BSTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800,420);
setLocationRelativeTo(null);
setIgnoreRepaint(true);
setVisible(true);
createBufferStrategy(2);
bs = getBufferStrategy();
panel.setIgnoreRepaint(true);
add(panel);
panel.drawStuff();
}
public class DrawPanel extends JPanel {
public void drawStuff() {
while(true) {
try {
Graphics2D g = (Graphics2D)bs.getDrawGraphics();
g.setColor(Color.BLACK);
System.out.println("W:"+getSize().width+", H:"+getSize().height);
g.fillRect(0,0,getSize().width,getSize().height);
bs.show();
g.dispose();
Thread.sleep(20);
} catch (Exception e) { System.exit(0); …Run Code Online (Sandbox Code Playgroud) 在Java中向布局数据输出(和输入)的最有效方法是什么?我打算用一个字符串,每个字符都是't'或'f'然后我想,为什么不减少8倍的空间?
注意
我实际上不知道哪个答案是更好的方法,我刚刚选择了彼得,因为我理解它.感谢两位回答者!
在下面的示例中,如何让JPanel占用所有JFrame?我将首选大小设置为800x420,但它实际上只填充792x391.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BSTest extends JFrame {
BufferStrategy bs;
DrawPanel panel = new DrawPanel();
public BSTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout()); // edited line
setVisible(true);
setSize(800,420);
setLocationRelativeTo(null);
setIgnoreRepaint(true);
createBufferStrategy(2);
bs = getBufferStrategy();
panel.setIgnoreRepaint(true);
panel.setPreferredSize(new Dimension(800,420));
add(panel, BorderLayout.CENTER); // edited line
panel.drawStuff();
}
public class DrawPanel extends JPanel {
public void drawStuff() {
while(true) {
try {
Graphics2D g = (Graphics2D)bs.getDrawGraphics();
g.setColor(Color.BLACK);
System.out.println("W:"+getSize().width+", H:"+getSize().height);
g.fillRect(0,0,getSize().width,getSize().height);
bs.show();
g.dispose();
Thread.sleep(20);
} catch …Run Code Online (Sandbox Code Playgroud) 我有这个基本的Java应用程序,dim_x并dim_y代表窗口和它内部的画布的尺寸.如何在用户更改窗口大小时更改这些值,以便画布上绘制的内容相应缩小/扩展?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MLM extends Canvas {
static int dim_x = 720;
static int dim_y = 480;
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Canvas canvas = new MLM();
canvas.setSize(dim_x, dim_y);
frame.getContentPane().add(canvas);
frame.pack();
frame.setVisible(true);
}
public void paint(Graphics g) {
// some stuff is drawn here using dim_x and dim_y
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:按照Binyamin的回答,我尝试添加这个有效,但是有更好的方法吗?如果没有制作canvas静电,也许?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MLM extends …Run Code Online (Sandbox Code Playgroud) 我正在制作Chrome扩展程序并且想知道,使用JS/jQuery循环遍历当前文档中的每个IMG对象的最佳方法是什么?