我一直在努力寻找解决问题的方法,但我没有运气.这是一个示例代码:
import java.awt.BorderLayout;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
public class Example extends JFrame
{
private static final long serialVersionUID = 1L;
public Example()
{
JPanel contentPane = (JPanel) getContentPane();
contentPane.setLayout(new BorderLayout());
JPanel panTop = new JPanel(new BorderLayout());
//JPanel panBottom = new JPanel(new BorderLayout());
JPanel panTopCenter = new JPanel();
//JPanel panTopLeft = new JPanel();
//JPanel panTopRight = new JPanel();
panTop.add(panTopCenter, BorderLayout.CENTER);
//panTop.add(panTopLeft, BorderLayout.WEST);
//panTop.add(panTopRight, BorderLayout.EAST);
contentPane.add(panTop, BorderLayout.CENTER);
//contentPane.add(panBottom, BorderLayout.SOUTH);
JPanel pan = new JPanel(); …Run Code Online (Sandbox Code Playgroud) 如何为 JTable 中的特定列设置自定义比较器?
我的表的第三列包含双值的字符串表示,我想为该列创建一个比较器,以便当我单击该列的标题时,它将根据该比较器进行排序。
final public class ImmutableWithObject {
final Object obj;
final List myList;
ImmutableWithObject(Object obj1, List list)
{
this.obj = obj1;
this.myList = ((List) ((ArrayList) list).clone());
}
public Object getObj() {
return this.obj;
}
public List getMyList() {
return (List) ((ArrayList<String>) this.myList).clone();
}
public static void main(String[] args) {
ImmutableWithObject io = new ImmutableWithObject(new Date(), new ArrayList());
((Date) io.getObj()).setDate(22);
System.out.println((Date) io.getObj());
}
}
Run Code Online (Sandbox Code Playgroud)
o/p : Mon Aug 22 00:50:04 IST 2011
Run Code Online (Sandbox Code Playgroud)
哪个不对.
我想检查用户输入是否只包含数字.所以,我使用以下代码:
for(i = 0; argv[1][i] != NULL; i++)
if(!isdigit(argv[1][i]))
{
printf("Error");
return -1;
}
Run Code Online (Sandbox Code Playgroud)
它运作良好,但我得到了这个警告:
warning: comparison between pointer and integer [enabled by default]
Run Code Online (Sandbox Code Playgroud)
因为argv[1][i]是一个整数并且NULL是一个指针.我该如何避免这种警告?
我正在开发一个Android应用程序,这是一个测验.另一方面,我正在开发一个完全基于Swing的桌面工具.桌面工具用于插入测验的问题,并生成一个序列化的目标文件,其中包含所有问题.我曾经java.awt.Image拿着附有问题的图像.
不幸的是,当我完成桌面工具的开发并转到Android端时,我发现Android没有java.awt.Image.所以我的问题是,无论如何要包含java.awt.Image在Android应用程序中?或者除了支持Swing组件之外,Java和Android中还有另一个可用于处理Image的类吗?或者至少,有没有办法解决我遇到的问题?
注意:您可能想知道为什么我要序列化对象而不仅仅是从XML或数据库中提取问题.那是因为,我需要将树数据结构作为问题的类别; 每个类别都有一个子类别旁边的问题列表.
只是想知道,为什么发明Java的人会编写类似的方法setAccessible(boolean flag),这会使访问修饰符(特别是私有的)无用,无法保护字段,方法和构造函数不被覆盖?请看以下简单示例:
public class BankAccount
{
private double balance = 100.0;
public boolean withdrawCash(double cash)
{
if(cash <= balance)
{
balance -= cash;
System.out.println("You have withdrawn " + cash + " dollars! The new balance is: " + balance);
return true;
}
else System.out.println("Sorry, your balance (" + balance + ") is less than what you have requested (" + cash + ")!");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
import java.lang.reflect.Field;
public class Test
{
public static void main(String[] args) …Run Code Online (Sandbox Code Playgroud) 当我运行我的代码工作有时但其他我得到这个错误:
Exception in thread "main" java.lang.StackOverflowError
at squareroot.SquareRoot.GetSquareRoot (SquareRoot.java: 9)
at squareroot.SquareRoot.GetSquareRoot (SquareRoot.java: 13)
at squareroot.SquareRoot.GetSquareRoot (SquareRoot.java: 13)`
Run Code Online (Sandbox Code Playgroud)
我正在检查我的代码并且我没有进入无限循环,请问我该如何解决这个问题?谢谢.
public static double GetSquareRoot(double n, double low, double high) {
double sqrt = (low + high) / 2;
if (sqrt*sqrt > n)
return GetSquareRoot(n, low, sqrt);
if (sqrt*sqrt < n)
return GetSquareRoot(n, sqrt, high);
return sqrt;
}
public static double Sqrt(double n){
return GetSquareRoot(n, 0, n);
}
public static double GetCubicRoot(double n, double low, double high) {
double cbrt = (low …Run Code Online (Sandbox Code Playgroud) 我在android中有项目,我需要拆分字符串,实际上这里的日期是我要拆分的字符串:
String datetime = "01/03/2013 09:00";
Run Code Online (Sandbox Code Playgroud)
这就是我称之为:
int year = splitDateTime(dateTime)[0];
Run Code Online (Sandbox Code Playgroud)
public int[] splitDateTime(String datetime){
String date_time = datetime;
String delimiter = "//:";
String[] sParts;
int[] intParts;
sParts = date_time.split(delimiter);
intParts = new int[sParts.length];
for(int i =0; i < sParts.length ; i++)
intParts[i] = Integer.parseInt(sParts[i]);
return intParts;
}
Run Code Online (Sandbox Code Playgroud)
但它一直给我一个错误,所以如果你帮助我,我会很高兴.干杯
我正在尝试创建自己的窗口类,扩展JFrame.但是,我遇到了动作监听器的问题fullScreenBtn.在编写ActionListener.actionPerformed函数时,我无法使用this它所引用的关键字new ActionListener.我如何参考实例MyWindow?
public class MyWindow extends JFrame {
private static GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
private static GraphicsDevice gDev = gEnv.getDefaultScreenDevice();
private static JPanel toolbar = new JPanel();
private static JButton fullScreenBtn = new JButton("Show Full Screen");
private static boolean isFullScreen = false;
public MyWindow() {
toolbar.setLayout(new FlowLayout());
this.getContentPane().add(toolbar, BorderLayout.PAGE_START);
fullScreenBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Toggle full screen window
this.setUndecorated(!isFullScreen);
this.setResizable(isFullScreen);
gDev.setFullScreenWindow(this);
isFullScreen = …Run Code Online (Sandbox Code Playgroud) 我希望这个问题不会被视为过于笼统.我知道要绘制一个JPanel覆盖paintComponent方法并将所有绘图代码放在该方法中.我的问题是为什么!为什么Java似乎不允许/提供使用panel.drawLine(x1,y1,x2,y2)或等方法绘图panel.drawText(text,x,y)?在delphi中这一切都变得如此简单.必须有一个我无法理解的原因.
java ×9
swing ×5
android ×2
alarmmanager ×1
algorithm ×1
c ×1
calendar ×1
comparator ×1
comparison ×1
date ×1
drawing ×1
gcc ×1
graphics2d ×1
immutability ×1
jframe ×1
jpanel ×1
jscrollpane ×1
jtable ×1
recursion ×1
reflection ×1
sorting ×1
ubuntu ×1