我有一个类似于油漆的程序.并且我正在尝试实现更改笔颜色,但是当我更改颜色时,当前绘制的所有内容都更改为颜色RED,例如在我的程序中,如何使其不会重绘当前绘制到当前所有内容的所有内容改变颜色?下面的代码将编译并运行
JPanel绘图区域的类
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
//refer to http://jkost.ergoway.gr/jnkjavaconnection/freedraw.html for the algorithm.
public class STDrawingArea extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
ArrayList<Rectangle> dPoint = new ArrayList<Rectangle>();
Point point = new Point(-1,-1);
private Color currentColor;
public STDrawingArea()
{
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(Color.WHITE);
addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e)
{
dPoint.add(new Rectangle(point.x,point.y,e.getX(),e.getY()));
point.x = e.getX();
point.y = e.getY();
repaint();
} …Run Code Online (Sandbox Code Playgroud) 我正在为一家虚拟公司设计一个登录系统,现在我所拥有的只是主要登录,需要大量的清理工作.下面是我的登录处理程序.
private class LoginButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(_uid.getText().equalsIgnoreCase("Nathan") && _pwd.getText().equals("password")) {
JOptionPane.showMessageDialog(null, "Congratulations on logging in!");
} else {
JOptionPane.showMessageDialog(null, "Error on login!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
原样,这种方法非常好,但是当我改为它时
_pwd.getPassword.equals("password")
Run Code Online (Sandbox Code Playgroud)
当一切输入正确时,它会直接指向else语句.这有什么不对?完整的程序如下.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame {
private static final int HEIGHT = 90;
private static final int WIDTH = 400;
JTextField _uid = new JTextField(10);
JPasswordField _pwd = new JPasswordField(10);
JButton _login = new JButton("Login");
JButton _reset = new JButton("Reset"); …Run Code Online (Sandbox Code Playgroud) 我想用javascript调整pagewrapper div的大小.我有chrome并且想用它作为用户脚本.这是网站链接:http://clanbase.ggl.com.我想将pagewrapper放到100%宽度.我有以下代码:
// ==UserScript==
// @match http://clanbase.ggl.com/*
// ==/UserScript==
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function pagewrapper() {
document.getElementById('pagewrapper').style.Width = "100%";
}
addJQuery(pagewrapper);
Run Code Online (Sandbox Code Playgroud) 我遇到了GridLayout的问题,并且整个JPanel没有被填充.我有一个N*M网格,我用N*M Tiles填充它(它们扩展了JPanel).添加所有这些图块后,JPanel的底部和右侧仍有空间.我认为GridLayout应该填满整个JPanel,并使其中的所有内容均匀分布?
编辑:我不想发布所有代码,因为有多个类.想到也许有一个简单的解决方案.
public class MainFrame extends JFrame {
private static final long serialVersionUID = 3985493842977428355L;
private final int FRAME_HEIGHT = 800;
private final int FRAME_WIDTH = 700;
private MainPanel mainPanel;
public MainFrame() {
super("Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(FRAME_HEIGHT, FRAME_WIDTH);
setLocationRelativeTo(null);
mainPanel = new MainPanel();
getContentPane().add(mainPanel);
setVisible(true);
}
}
public class MainPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 3421071253693531472L;
private RoutePanel routePanel;
private ControlPanel controlPanel;
private GridBagConstraints gridBagConstraints;
private GridBagLayout gridBagLayout;
public MainPanel() {
routePanel = …Run Code Online (Sandbox Code Playgroud) 在C++中,您可以扩展许多类,那么这个Java设计的优点是什么类只能扩展一个类?由于接口是一种纯类(实际上是抽象类),为什么不像类扩展一样限制接口的实现数量呢?
我做了我认为是递归的一个例子.这可以接受吗?这不是一个项目或任何事情,我的教授是可怕的,所以我试着自学.
public void theCat() {
int i;
for (i = 0; i <= 50; i++) {
System.out.println(i);
if (i == 10) {
theCat();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个 jTable,用于显示国家/地区名称以及名称旁边的单元格中的国旗图标。如何使用 ImageIcon 类在同一列但不同行中显示每个图标,而不只显示字符串?
以下是我编写的内容,用于在 jTable 中的某个位置显示法国国旗图标,但它只显示字符串
ImageIcon icon = new ImageIcon("http://www.stoma.fr/assets/images/French_Flag_Small_Icon.jpg");
jTable.setValueAt(icon, 1, 2);
Run Code Online (Sandbox Code Playgroud) 我创建了一个对话框,用户可以通过用户击键来更改菜单项的键绑定.我想输入和转义为用户可以绑定的键,但它们都关闭对话框.这些印刷机怎么能被截获?
编辑:使用JOptionPane和自定义组件创建对话框
GetKeyComponent comp = new GetKeyComponent(accels, menuItem);
Object[] array = { comp };
JOptionPane optionPane = new JOptionPane(array,
JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
Run Code Online (Sandbox Code Playgroud) 我完全难过了.我尽力解决这个问题.
我有一个SCSS文件,上面有一个观察者,但观察者似乎没有工作.根本没有制作普通的CSS文件.这是我的SCSS文件:
同样,我正在使用WebStorm IDE.
错误信息:
执行观察者'SCSS'时发生异常.Watcher已被禁用.修复它:无法运行程序"C:\ Users\Luke\WebstormProjects\untitled\myTestWebsite\main.scss"(在目录"C:\ Users\Luke\WebstormProjects\untitled\myTestWebsite"中):CreateProcess error = 193,% 1不是有效的Win32应用程序
我是JAVA GUI的新手,遇到了问题.下图显示了我的问题所在的GUI部分.
我想实现这一点,当我点击"点击切换"按钮时,将交换comboBox的内容.我尝试了不同的方式来交换两个comboBox的位置或交换两个ComboBox的内容,但都没有成功.
以下是我的代码中与此问题相关的部分.
1类:
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JPanel;
public class FilePathComboBox implements ActionListener {
List<String> strings;
BufferedReader input;
JComboBox comboBox;
JPanel jpFilePath;
JButton testJB;
public FilePathComboBox(String filePathOfSyncTool) {
strings = new ArrayList<String>();
FileReader fr;
try {
fr = new FileReader(filePathOfSyncTool);
} catch (FileNotFoundException e1) {
fr = null;
e1.printStackTrace();
}
input = new BufferedReader(fr);
try {
String line = …Run Code Online (Sandbox Code Playgroud)