我正在编写一个处理低级图像内存的Objective-C程序.我正在使用ANSI-C结构进行数据存储 - 由于我存储的数据是100%数据,没有任何方法可以对该数据进行操作,因此完全成熟的对象看起来有些过分.具体来说,我正在编写一个可定制的分色算法,它依赖于一系列颜色 - 这就是事情变得棘手的地方.我将我的颜色存储为三个浮点数的结构,以及一个整数标记(具体来说与分色算法有关).Everyhting进展顺利,除了一件事......
[实际问题]
我无法弄清楚如何添加指向NSMutableArray的指针!我知道如何添加一个对象,但添加指向结构的指针似乎更难 - 我不希望NSMutableArray解除引用我的指针并将结构视为某种奇怪的对象.我希望NSMutableArray将其自身的指针添加到其集合中.我该怎么做呢?
提前致谢,
G
我正在玩UI按钮,只是为了了解可以用它们做些什么.到目前为止我只有一个问题:
如何修改 UIButton的位置?
- (IBAction)buttonClicked:(id)sender
{
UIButton *senderB = sender;
CGPoint position = senderB.frame.origin;
CGSize size = senderB.frame.size;
senderB.frame = CGRectMake(position.x,position.y + 10,size.width,size.height);
}
Run Code Online (Sandbox Code Playgroud)
上面的工作很好,但是,每次我想简单地改变一个时创建一个新的CGrect对我来说似乎相当低效.
有没有办法让我直接设置senderB.frame.origin.x等的值?
这是一个假设的问题,它确实没有实际用途,但......
假设你要这样做:
document.open = null;
Run Code Online (Sandbox Code Playgroud)
如何将document.open恢复到其原始功能,这是否可行(没有用户制作的临时存储)?document.open是否以不太知名的名称存储在另一个位置?谢谢!:)
我正在尝试在Eclipse中编写一个java应用程序.
我真的想要使用ACM.Program包,但是,我的Eclipse副本没有安装它!
我看了整个网络,我找不到ACM包的单一下载.
更多信息:每当我尝试代码时:
package helloGeiodo;
import acm.program.*;
public class Add2 extends Program {
public void run() {
println("This program adds two numbers.");
int n1 = readInt("Enter n1: ");
int n2 = readInt("Enter n2: ");
int total = n1 + n2;
println("The total is " + total + ".");
}
}
Run Code Online (Sandbox Code Playgroud)
我在ying-yang上下错误,都暗示没有"acm.program"这样的东西.
无论如何,我需要知道在哪里可以找到ACM包,以及如何安装它.
谢谢!
--Flynn
好的,这就是我想做的.
Class Container<T>
{
T contained;
public void ContainObject(T obj)
{
contained = obj;
if(/*Magical Code That Detects If T Implemtns IContainableObject*/)
{
IContainableObect c = (IContainableObject)obj;
c.NotifyContained(self);
}
}
}
interface IContainableObject
{
public void NotifyContained(Container<REPLACE_THIS>);//This line is important, see below after reading code.
}
Class ImplementingType : IContaiableObject
{
public Container<ImplementingType> MyContainer;
public void NotifyContained(Container<ImplmentingType> c)
{
MyContainer = c;
}
}
Class Main
{
public static void Main(args)
{
ImplementingType iObj = new ImplementingType();
Container<ImplementingType> container = …Run Code Online (Sandbox Code Playgroud) 我正在为一个亲戚制作一个简单的小摆动应用程序,但是我在实现它的动画时遇到了麻烦......
这是我的布局的描述:
我有一个主窗口(通过实例化,打包和显示JFrame创建).我告诉主窗口的内容面板使用GridBagLayout作为其布局.我的网格宽2格,高3格.在第一列中,我有三个JButton(A,B和C),每个JButtons占据一行垂直网格空间,一列水平网格空间.在第二列中,我有另一个JPanel,它是一列宽,三行高.
第二个JPanel也设置为使用GridBagLayout作为其布局.在这种情况下,有两列,一行.左列有一个宽的宽,一行高的JPanel,里面有Button 1.右列只包含一个JButton(按钮2),它也是一列宽,一行高.
这是我刚才描述的截图:

现在您了解了布局是什么,让我解释一下我一直在尝试做什么:
我一直在尝试使用通用补间引擎来调整包含按钮1的Jpanel.但是,在我的尝试中,我得到了这个结果:

您可能已经看到,包含Button 1的JPanel已成功调整大小!但是,按钮2的大小和位置根本没有变化,事实上,按钮2被包含按钮1的JPanel切断了!
这是一个问题,因为我希望调整包含Button 1的JPanel的大小,以同时更改其包含的GridBagLayout的单元格大小.看来,我在这件事上非常错误.
所以这使我想到我的问题...我需要什么,以"更新"我的GridBagLayout的,这样它会调整其电网,以适应从JPanel的包含按钮1尺寸的增加呢?我试过调用GridBagLayout.invalidatelayout()我的GridBaglayout,我也试过调用JFrame.getContentPane().invalidate()我的主窗口.似乎都没有任何影响.
这是我的项目的可编译源代码:
ImageManager.java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import aurelienribon.tweenaccessors.swing.*;
import aurelienribon.utils.swing.*;
import aurelienribon.tweenengine.*;
import aurelienribon.tweenengine.equations.*;
public class ImageManager
{
/**
* @param args
*/
public static JFrame mainwindow;
public static TweenManager tweenManager;
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable() //For thread safety!
{
public void run()
{
InitGUI();
InitTween();
}
});
}
private static void InitTween()
{ …Run Code Online (Sandbox Code Playgroud) 这是我试图运行的代码:
$str = 'a,b,c,d';
return preg_split('/(?<![^\\\\][\\\\]),/', $str);
Run Code Online (Sandbox Code Playgroud)
如您所见,这里使用的正则表达式是:
/(?<![^\\][\\]),/
Run Code Online (Sandbox Code Playgroud)
这是一个简单的固定长度负回顾,用于“前面不是反斜杠的东西,然后是!”。
这个正则表达式在http://www.phpliveregex.com上工作得很好
但是当我去实际尝试运行上面的代码时,我吐出了错误:
Warning: preg_split() [function.preg-split]: Compilation failed: lookbehind assertion is not fixed length at offset 13
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,一位程序员同事在他的 5.4.24 PHP 服务器上测试了代码,并且运行良好。
这让我相信我的问题与我的服务器配置有关,我几乎无法控制。我被告知我的 PHP 版本是 5.2.*
是否有任何可能不存在此问题的 preg_replace() 的解决方法/替代方法?
首先,看看这段代码:
Dictionary<int,int> dict = Dictionary<int,int>();
dict[3] = 1;
dict[2] = 2;
dict[1] = 3;
foreach(KeyValuePair<int,int> item in dict.OrderByDescending(p => p.Value))
{
print(item.Value);
break;
}
Run Code Online (Sandbox Code Playgroud)
此代码基本上打印具有最高值的字典中的条目的值.我想在不使用"破坏" foreach循环的情况下完成此操作.我怎么能这样做?
我一直在互联网上搜索这个,从堆栈溢出答案到堆栈溢出答案,尝试洛可可,或Class.forName ("com.apple.cocoa.application.NSApplication");其他。
事情的底线是,看在上帝的份上,我无法弄清楚如何让我的 Java 应用程序将自己的注意力集中在 OSX 上!
让我说清楚:我的应用程序没有窗口(将来会有,但有时它可能根本没有任何窗口)。我需要一种不依赖于 Windows 的方法来聚焦我的应用程序。
没有找到任何东西,我拼命决定尝试一个依赖于有一个窗口的解决方案:
private static void BringSelfToFocus()
{
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
Window window = new JFrame("Test");
window.toFront();
window.repaint();
}
});
}
Run Code Online (Sandbox Code Playgroud)
然而,就像我所有其他徒劳的尝试一样,失败了。
所以,是的,虽然这在技术上是一个重复的问题,但我已经尝试了我能找到的所有其他答案,无论出于何种原因,它们都不起作用。
任何人都可以在这件事上伸出援助之手吗?谢谢你。
-乔治
java ×3
c# ×2
.net ×1
animation ×1
containers ×1
css ×1
default ×1
dictionary ×1
eclipse ×1
focus ×1
function ×1
generics ×1
global ×1
ide ×1
interface ×1
ios ×1
iphone ×1
javascript ×1
linq ×1
macos ×1
objective-c ×1
php ×1
pointers ×1
regex ×1
resize ×1
restore ×1
sorted ×1
swing ×1
tween ×1
uibutton ×1
width ×1
window ×1